3

我想存储对有状态会话 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 的引用(我只是这么说,因为人们到处都推荐这个)。

4

1 回答 1

0

这家伙显然找到了 glassfish 特定的解决方案:

http://www.jaceklaskowski.pl/wiki/Serializing_reference_of_@Stateful_session_beans_in_EJB_3.1_with_GlassFish_3.1

于 2012-05-30T06:04:14.740 回答