17.3 ロード対象のクラスとロード時に必要なクラスパス
アノテーション情報は,次のような操作を実行したときに読み込まれます。
-
リソースの追加(cjaddapp)※
-
インポート時(cjimportapp)
-
インポート時(cjimportwar)
-
インポート時(cjimportres)
-
インポート時(cjimportlibjar)※
-
開始時(cjstartapp)
-
リプレース時(cjreplaceapp)
-
リロード時(cjreloadapp)
- 注※
-
対象となるのはライブラリJARのクラスです。
アノテーション情報を読み込むためには,まずクラスをロードする必要があります。
アノテーション情報を読み込むためにロードするクラスを次の図に示します。
なお,EJB-JAR(ejb-jar.xmlのバージョンが2.1)に含まれるクラスファイルまたはWAR(web.xmlのバージョンが2.4)に含まれるクラスファイルからアノテーション情報を読み込む場合のアノテーションは,アプリケーションサーバ独自の仕様です。ただし,この機能は,旧バージョンとの互換機能です。詳細は,マニュアル「アプリケーションサーバ 機能解説 互換編」の「18.1 EJB 2.1とServlet 2.4でのアノテーションの利用」を参照してください。
なお,J2EE 1.4以前に準拠したJ2EEアプリケーションの場合,EJB-JAR(ejb-jar.xmlのバージョンが2.1,またはejb-jar.xmlが省略されたもの)やWAR(web.xmlのバージョンが2.4)からライブラリJARを使用することはできません。指定しても無視されます。
アノテーション情報を取得するためにクラスをロードするかどうかは,各モジュールのバージョン,およびDD内の属性定義に依存します。
モジュールのバージョンがEJB-JAR(3.0)またはWAR(2.5)の場合のアノテーション情報を取得するかどうかの条件を次の表に示します。
モジュール |
DDのmetadata-completeタグ |
DD省略 |
|
---|---|---|---|
falseまたはタグを省略 |
true |
||
EJB-JAR(3.0) |
○ |
− |
○ |
WAR(2.5) |
○ |
− |
○ |
ライブラリJARのアノテーション情報を取得するかどうかを次の表に示します。
モジュール |
Java EE 5以降に準拠するJ2EEアプリケーション |
J2EE 1.4以前に準拠するJ2EEアプリケーション |
||||
---|---|---|---|---|---|---|
DDのmetadata-completeタグ |
DD省略※ |
DDのmetadata-completeタグ |
DD省略 |
|||
falseまたはタグを省略※ |
true |
falseまたはタグを省略 |
true |
|||
EJB-JAR(3.0) |
○ |
− |
○ |
× |
× |
− |
WAR(2.5) |
○ |
− |
○ |
× |
× |
× |
- 注意事項
-
アノテーション情報を読み込むために必要なクラスが不足している場合,または不正なクラスがある場合は,アノテーション情報の取得処理中に例外が発生します。クラスのロード時に例外が発生した場合は,例外ログ,およびメッセージKDJE42380-Wを出力し処理を続行します。なお,例外が発生した場合にエラーにしたいときは,プロパティejbserver.deploy.annotations.load_check.enabledの値をfalseからtrueへ変更してください。