我正在使用 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 已经实现了可序列化。那么我能做些什么来解决这个问题呢?
谢谢 !
---- 添加信息 07/20/2012 ----
我从会话 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;
}