2013-01-03 37 views
0
使用Hazelcast的HttpSession集羣有兩個Glassfish的3.1.2.2實例

IM。 Im使用@EJB或@Inject註釋在受管理的bean中注入EJB。在@ViewScoped@SessionScoped管理豆類,即時得到NotSerializableException:com.sun.ejb.containers.EJBLocalObjectInvocationHandlerDelegate

com.hazelcast.nio.HazelcastSerializationException: 
java.io.NotSerializableException: 
    com.sun.ejb.containers.EJBLocalObjectInvocationHandlerDelegate Exception. 

當我標有短暫的關鍵字@EJB領域,因此,我沒有得到SerializationException。但是,在反序列化之後,我的ejbs沒有重新注入,然後,我得到了NullPointerException

我該如何處理這個問題? (注:Hazel vers:2.4)

+0

嗨,你能解決它嗎?對'java.io.NotSerializableException:com.sun.ejb.containers.EJBLocalObjectInvocationHandlerDelegate Exception'有同樣的問題,到目前爲止找不到任何解決方案。以下發布的所有內容 - 已經實施...謝謝! –

回答

1

您是否試過讓您的EJB類實現Serializable?

+0

當然,我的ejb實現了Serializable接口。 –

0

除了你的EJB類,確保所有對象嵌套在他們的序列化也是如此。

有一個虛擬機選項可以將細節添加到異常。它會顯示根和嵌套類沒有序列化,並幫助你找出你錯過了什麼:

-Dsun.io.serialization.extendedDebugInfo=true 

您還可能要檢查你定義的serialVersionUID爲每個Serializable類includding (如果他們是序列化)

注意:你的代碼可以在不運行的serialVersionUID,但有時read the last paragraph in Serializable's javadoc理解爲什麼它會根據環境的問題。