2

私はEJB3.1の本(O'Reilly、Andrew Lee Rubinger、Bill Burke)を読んでいましたが、著者は次のように述べています(これらは本の正確な言葉ではなく、これは私自身のテキストの理解です)。

SFSBでは、(不動態化されたプールから出た後)アクティブ化されると、シリアル化されたオブジェクトは、元の標準とは異なり、intが0を返すことは保証されず、オブジェクトがnullを返すことは保証されないなどのデフォルト値を返しません。

私の理解は正しいですか?それが本当なら、なぜEJBがこの振る舞いをするのですか?

http://www.coderanch.com/t/546765/java-EJB-SCBCD/certification/why-serialization-unpredictable-SFSB#2481285の元の投稿

4

1 に答える 1

2

一時的なフィールドにのみ適用される仕様ごと。

仕様から-O'ReillyはEJBを設計しませんでした(ただ...と言っています):

「コンテナは、不動態化されたセッションインスタンスの状態を格納するために、Javaプログラミング言語のシリアル化プロトコルを使用する必要はありませんが、同等の結果を達成する必要があります。唯一の例外は、コンテナが一時フィールドの値をリセットする必要がないことです。アクティベーション中[12]。セッションBeanのフィールドを一時的なものとして宣言することは、一般的に推奨されていません。」[EJB3.1-4.2.1-強調鉱山]

編集:

ところで、あなたの質問に対する答えは、EJB仕様にもあります。

「一時フィールドの使用に関する制限により、コンテナーはパッシベーションおよびアクティブ化中にJavaシリアル化を使用できるようになります。」

EJB 3.1仕様(ミラー/ pdf)

于 2011-07-26T14:56:03.963 に答える