在EJB 3.1中存储SFSB引用

时间:2012-05-23 14:44:48

标签: java-ee glassfish java-ee-6 ejb-3.1

我想存储对有状态会话Bean的引用并将其保存到数据库或将其传输到另一个VM。据我所知,在EJB 2.x中,可以使用getHandle()。 如果我尝试使用Glassfish 3.1.1序列化SFSB实例,我会得到以下异常:

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

此外,我还没有找到获取SFSB句柄的方法。即使容器正确管理bean,SFSB SessionContext中对EFBHome,EFBObject,EFBLocalHome的所有引用都为null。如果我正确理解规范,那么无论如何都不需要EJB 3.1中的句柄,因为开发人员应该能够直接使用SFSB引用。

This article处理同样的问题,但建议使用JavaEEObjectInputStream类没有在我的测试中公开readObject方法。我想知道这种方法是如何工作的。

有人能建议一个很好的方法来序列化Glassfish中的SFSB来存储引用吗?我不想附加对HTTPSession的引用(我只是这样说,因为人们到处都推荐这个)。

1 个答案:

答案 0 :(得分:0)