2012-05-23 54 views
3

我想存儲對有狀態會話Bean的引用並將其保存到數據庫或將其傳送到另一個VM。據我所知,在EJB 2.x中,可以使用getHandle()。 如果我嘗試序列化SFSB實例中使用GlassFish 3.1.1,我得到以下異常:在EJB 3.1中存儲SFSB引用

java.io.NotSerializableException: com.sun.ejb.containers.EJBLocalObjectInvocationHandlerDelegate 

此外,我還沒有找到一種方法來獲得SFSB手柄。在SFSB SessionContext中,所有對EFBHome,EFBObject,EFBLocalHome的引用都是null,即使bean正在被容器管理。如果我正確理解了這個規範,無論如何,EJB 3.1中都不需要處理,因爲開發人員應該能夠直接使用SFSB引用。

This article處理相同的問題,但建議使用JavaEEObjectInputStream類在我的測試中沒有公開readObject方法。我想知道這種方法如何工作。

任何人都可以提出一個很好的方法來序列化Glassfish中的SFSB存儲參考?我不想將引用附加到HTTPSession(我只是這麼說,因爲人們都會推薦這個)。

+0

也許這不是一個令人滿意的答案,但爲什麼不與JNDI查找和便攜式窄對象使用舊的原始EJB 2的代碼?它仍然適用於使用3.x註釋聲明的EJB ... –

回答