【问题标题】:Stateful Session Beans don't get default values after deserialization有状态会话 Bean 在反序列化后不会获得默认值
【发布时间】:2011-07-26 14:36:53
【问题描述】:

我正在阅读一本 EJB 3.1 的书(O'Reilly、Andrew Lee Rubinger 和 Bill Burke),作者在其中提到(这些不是书中的确切文字,这是我自己对文本的理解) :

在 SFSB 被激活时(从钝化状态出来后) pool),序列化的对象,不像它们原来的规范,不会返回 像 int 这样的默认值不能保证返回 0 和 object 不保证返回null

我的理解正确吗?如果是真的,为什么 EJB 会有这种行为?

http://www.coderanch.com/t/546765/java-EJB-SCBCD/certification/why-serialization-unpredictable-SFSB#2481285上的原帖

【问题讨论】:

    标签: java ejb stateful-session-bean


    【解决方案1】:

    仅适用于瞬态字段的规范。

    从规范来看——O'Reilly 没有设计 EJB(只是说...):

    “虽然容器不需要使用Java编程语言的序列化协议来存储钝化会话实例的状态,它必须达到等效的结果 . 一个例外是容器不需要在激活期间重置瞬态字段的值[12]。通常不鼓励将会话 bean 的字段声明为瞬态。” [EJB 3.1 - 4.2.1 - 强调我的]

    编辑:

    顺便说一句,你的问题的答案也在 EJB 规范中:

    “对使用瞬态字段的限制确保容器在钝化和激活过程中可以使用Java序列化。”

    EJB 3.1 spec (mirror/pdf)

    【讨论】:

    • 在那个 pdf 上看到“太阳”真是太难过了,顺便说一句。 RIP。
    猜你喜欢
    • 2015-05-15
    • 1970-01-01
    • 1970-01-01
    • 2011-04-26
    • 1970-01-01
    • 2013-08-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多