我正在使用Hazelcast HttpSession Clustering和两个Glassfish 3.1.2.2实例。我使用@EJB
或@Inject批注在托管bean中注入EJB。在@ViewScoped
和@SessionScoped
托管bean中,我正在
com.hazelcast.nio.HazelcastSerializationException:
java.io.NotSerializableException:
com.sun.ejb.containers.EJBLocalObjectInvocationHandlerDelegate Exception.
当我使用transient关键字标记@EJB
字段时,我没有得到SerializationException
。但是,在反序列化后,我的ejbs没有重新注入,然后,我得到NullPointerException
。
我该如何处理这个问题? (注:Hazel vers:2.4)
答案 0 :(得分:1)
您是否尝试过让EJB类实现Serializable?
答案 1 :(得分:0)
除了EJB类之外,还要确保嵌套的所有对象也是Serializable。
有一个VM选项可以向异常添加详细信息。它将显示根序列和嵌套类无法序列化并帮助您弄清楚您缺少的内容:
-Dsun.io.serialization.extendedDebugInfo=true
您可能还想检查是否为每个Serializable类定义了 serialVersionUID ,包括超类(如果它们是可序列化的)
注意:您的代码有时可以在没有serialVersionUID的情况下运行,但read the last paragraph in Serializable's javadoc可以了解为什么它会成为问题,具体取决于环境。