0

私は、古くて少し腐った EJB 2.0 アプリケーションを見つけようとしています。将来的には EJB 3.x に移行する可能性があります。

EJB 3.x は、その Bean 定義をコンパクトに保ち、重要なメタデータにアノテーションを使用するのに十分優れています。残念ながら、EJB 2.x は間違いなくより複雑で、複数の XML ファイルが互いに積み重なっています。JBoss 固有のメソッド呼び出しと対応する XML ファイルをいくつか追加すると、結果はめちゃくちゃになります...

だから、基本から始めて:

ステートフルな EJB 2.0 Bean とステートレスな EJB 2.0 Bean を確実に区別するにはどうすればよいでしょうか?

4

1 に答える 1

1

重要な情報は、ejb-jar.xmlファイルの内容です。Bean がステートフルであるかどうかに関係なく、明示的な要素が含まれている場合があります。

ステートフル Bean の場合:

<session>
   ...
   <ejb-name>TestBean</ejb-name>
   ...
   <ejb-class>com.example.TestBean</ejb-class>
   <session-type>Stateful</session-type>
   ...
</session>

ステートレス Bean の場合:

<session>
   ...
   <ejb-name>TestBean</ejb-name>
   ...
   <ejb-class>com.example.TestBean</ejb-class>
   <session-type>Stateless</session-type>
   ...
</session>

その他の重要な兆候は、Bean の実装で見つけることができます。EJB 2.0 仕様のセクション 7.5.3 によると:

ステートレス セッション Beanは、SessionSynchronization インターフェースを実装してはなりません。

ステートレス Bean のセクション 7.8 から:

セッション Bean クラスは、引数を取らない単一の ejbCreate メソッドを定義する必要があります。

于 2012-08-12T21:42:55.253 に答える