EclipseLink (JPA 2.0) を使用して、netbeans で JSF + Primefaces + tomcat 6.0.32 の環境を実行しています。
アプリケーションは正常に動作しますが、実行するたびに、セッション Bean をシリアライズできないという多くの警告が表示され、セッション Bean ごとに次のようなブロックが表示されます。
18-jul-2012 23:05:46 org.apache.catalina.session.StandardSession writeObject
ADVERTENCIA: No puedo serializar atributo de sesión facturacionController para sesión 62A53325838E1E7C6EB6607B1E7965E6
java.io.NotSerializableException: org.eclipse.persistence.internal.jpa.EntityManagerFactoryImpl
at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1164)
at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1518)
... and so on...
問題は、私のセッション Bean がすでに Serializable を実装していることです。これを解決するにはどうすればよいですか?
ありがとう !
---- 追加情報 2012 年 7 月 20 日 ----
セッション Bean から EntityManager への参照を作成している唯一のポイントは、次のように getter プロパティで jpaController を作成するときです。
private JpaController getJpaController() {
if (jpaController == null) {
jpaController = new JpaController(Persistence.createEntityManagerFactory("myPersistenceUnit"));
}
return jpaControllerPedido;
}
これは、jpaController コンストラクターを次のように定義したためです。
public JpaController(EntityManagerFactory emf) {
this.emf = emf;
}