16.4.4 注意事項
DIを使用した場合の注意事項を示します。
-
DIを使用した場合の,Stateful Session Beanのリファレンス取得時の注意事項を次に示します。
-
J2EEアプリケーションがサーブレットからStateful Session Beanを呼び出す構成の場合,サーブレットでStateful Session Beanのリファレンスを取得するときは,DIを使用しないで,JNDI経由で行ってください。
-
J2EEアプリケーションがStateless Session BeanまたはSingleton Session BeanからStateful Session Beanを呼び出す構成の場合に,DIを使用してStateful Session BeanのビジネスインタフェースをStateless Session Beanに注入するとき,Stateless Session Beanのビジネスメソッド呼び出し,またはタイムアウトメソッド呼び出しのたびにDIが実行されます。
-
-
@Resourceアノテーションで指定できないリソースのタイプを指定した場合,インポート時に例外が発生します。
-
@EJBおよび@Resourceアノテーションのname属性は,次の表に示すejb-jar.xmlのタグの要素と対応しています。このため,アノテーションでEnterprise Beanおよびリソースへの参照を定義する場合は,@EJBおよび@Resourceアノテーションのname属性と,name属性に対応するejb-jar.xmlのタグに指定する要素は,重複しないように設定してください。name属性に対応するejb-jar.xmlのタグを次の表に示します。
表16‒8 name属性に対応するejb-jar.xmlのタグ アノテーションと属性
name属性に対応するejb-jar.xmlのタグ
@EJB name()
<ejb-ref>タグ下の<ejb-ref-name>タグ
<ejb-local-ref>タグ下の<ejb-ref-name>タグ
@Resource name()
<env-entry>タグ下の<env-entry-name>タグ
<resource-ref>タグ下の<res-ref-name>タグ
<resource-env-ref>タグ下の<resource-env-ref-name>タグ
-
DIを使用するWebアプリケーションのリロード時には,例外が発生することがあります。例外が発生する場合を次に示します。
-
DIターゲット(DI機能を使用して参照を注入する対象)を定義しているクラス,または参照先クラスのロードに失敗した場合
-
DIターゲット名に対応したフィールド,メソッドがリロード後に削除されて,存在しない場合
例外が発生すると,メッセージログにKDJE53904-Wのメッセージが出力され,処理が続行されます。処理は続行されますが,対象となるインスタンスに対するDIが実行できない状態になり,対象のインスタンスへのリクエストが実行できなくなります。このため,このメッセージが出力された場合は,Webアプリケーションを修正して再度リロードを実施してください。
-