gpt4 book ai didi

java - 反序列化后有状态 session Bean 不获取默认值

转载 作者:行者123 更新时间:2023-11-30 09:47:09 25 4
gpt4 key购买 nike

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

in SFSB when its becoming activated (after coming out of passivated pool), serialized objects, unlike their original norm, will not return the default values like int will not guaranteed to return 0 and object is not guaranteed to return null

我的理解对吗?如果是这样,为什么 EJB 会有这种行为?

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

最佳答案

根据仅适用于瞬变场的规范。

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

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

编辑:

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

“对 transient 字段使用的限制确保容器可以在钝化和激活期间使用 Java 序列化。”

EJB 3.1 spec (mirror/pdf)

关于java - 反序列化后有状态 session Bean 不获取默认值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6831751/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com