Cosminexus 機能解説

[目次][用語][索引][前へ][次へ]

4.2.3 Webアプリケーションでのアノテーション指定

Webアプリケーションにはアノテーションを指定できます。アノテーションとは,Webアプリケーションが依存しているリソースやほかのEnterprise Beanへの参照を取得するために使用する記述方式で,Servlet 2.4の場合に指定できます。なお,Servlet 2.3以前のバージョンのweb.xmlがある場合,アノテーションの指定は無効になります。

<この項の構成>
(1) 指定できるアノテーション
(2) DIを使用するWebアプリケーションのリロード
(3) Webアプリケーションのアノテーション参照抑止
(4) インポート時の注意

(1) 指定できるアノテーション

Webアプリケーションに指定できるアノテーションは次のとおりです。

なお,@EJBおよび@Resourceアノテーションのname属性は,web.xmlのタグの要素と対応しています。このため,アノテーションでEnterprise Beanおよびリソースへの参照を定義する場合は,@EJBおよび@Resourceアノテーションのname属性と,name属性に対応するweb.xmlのタグに指定する要素は,重複しないように設定してください。name属性に対応するweb.xmlのタグを次の表に示します。

表4-5 name属性に対応するweb.xmlのタグ

アノテーションと属性 name属性に対応するweb.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>タグ
参考
Webアプリケーションのアノテーション指定時の注意は,Enterprise Beanにアノテーションを指定するときの注意と同じになります。Enterprise Beanのアノテーション指定については,「5.2.4 Enterprise Beanのアノテーション指定」もあわせて参照してください。

(2) DIを使用するWebアプリケーションのリロード

DIを使用するWebアプリケーションのリロード時には,例外が発生することがあります。例外が発生する場合を次に示します。

例外が発生すると,メッセージログにKDJE53904-Wのメッセージが出力され,処理が続行されます。処理は続行されますが,対象となるインスタンスに対するDIが実行できない状態になり,対象のインスタンスへのリクエストが実行できなくなります。このため,このメッセージが出力された場合は,Webアプリケーションを修正して再度リロードを実施してください。

(3) Webアプリケーションのアノテーション参照抑止

Cosminexusは,Servlet2.4仕様に基づいたWebアプリケーションでもアノテーションを使用できます。しかし,アノテーションの有無を判断するためにWebアプリケーションを解析するため,アノテーションを使用していない場合でも解析によるオーバーヘッドが大きくなります。アノテーションを使用しない場合は,アノテーション参照抑止機能を使用することで解析によるオーバーヘッドを減らすことができます。アノテーション参照抑止機能は,J2EEサーバ単位で設定できます。アノテーション参照抑止機能については,「5.2.7 アノテーションの参照抑止」を参照してください。

(4) インポート時の注意

WARファイルからEJB-JARファイルを参照している場合,WARファイルとEJB-JARファイルの両方を含んだアプリケーションにしてからインポートしてください。ただし,参照するインタフェースをWARファイルに含めている場合は,WARファイルを個別にインポートすることもできます。