我想存储对有状态会话 Bean 的引用并将其保存到数据库或将其传输到另一个 VM。据我所知,在 EJB 2.x 中,可以使用getHandle()
. 如果我尝试使用 Glassfish 3.1.1 序列化 SFSB 实例,则会收到以下异常:
java.io.NotSerializableException: com.sun.ejb.containers.EJBLocalObjectInvocationHandlerDelegate
此外,我还没有找到获得 SFSB 句柄的方法。SFSB SessionContext 中对 EFBHome、EFBObject、EFBLocalHome 的所有引用都是空的,即使 bean 由容器正确管理。如果我正确理解规范,那么无论如何都不需要 EJB 3.1 中的句柄,因为开发人员应该能够直接使用 SFSB 引用。
本文讨论了同样的问题,但建议使用 JavaEEObjectInputStream 类并没有在我的测试中公开方法 readObject。我想知道这种方法怎么可能奏效。
谁能建议一种在 Glassfish 中序列化 SFSB 以存储参考的好方法?我不想附加对 HTTPSession 的引用(我只是这么说,因为人们到处都推荐这个)。