11.3 ロード対象のクラスとロード時に必要なクラスパス

アノテーション情報は,次のような操作を実行したときに読み込まれます。

注※
対象となるのはライブラリJARのクラスです。

アノテーション情報を読み込むためには,まずクラスをロードする必要があります。

アノテーション情報を読み込むためにロードするクラスを次の図に示します。

図11-2 アノテーション情報を読み込むためにロードするクラス

[図データ]

EJB-JAR(ejb-jar.xmlのバージョンが2.1)に含まれるクラスファイルまたはWAR(web.xmlのバージョンが2.4)に含まれるクラスファイルからアノテーション情報を読み込む場合のアノテーションは,Cosminexus アプリケーションサーバ独自の仕様です。また,アプリケーションサーバでは,Cosminexus アプリケーションサーバ独自の仕様によって,J2EE 1.4の場合でもejb-jar.xmlの省略とアノテーションの使用ができます。

なお,J2EE 1.4以前に準拠したJ2EEアプリケーションの場合,EJB-JAR(ejb-jar.xmlのバージョンが2.1,またはejb-jar.xmlが省略されたもの)やWAR(web.xmlのバージョンが2.4)からライブラリJARを使用することはできません。指定しても無視されます。

アノテーション情報を取得するためにクラスをロードするかどうかは,各モジュールのバージョン,DD内の属性定義,およびJ2EEサーバで設定されているプロパティに依存します。

モジュールのバージョンがEJB-JAR(3.0)またはWAR(2.5)の場合のアノテーション情報を取得するかどうかの条件を次の表に示します。

表11-3 モジュールのバージョンがEJB-JAR(3.0)またはWAR(2.5)の場合

モジュールDDのmetadata-completeタグDD省略
falseまたはタグを省略true
EJB-JAR(3.0)
WAR(2.5)
(凡例)
○:アノテーション情報を取得する
-:アノテーション情報を取得しない

モジュールのバージョンがEJB-JAR(2.1)またはWAR(2.4)の場合のアノテーション情報を取得するかどうかの条件を次の表に示します。

表11-4 モジュールのバージョンがEJB-JAR(2.1)またはWAR(2.4)の場合

モジュールJ2EEサーバのプロパティ
ejbserver.deploy.applications.metadata_complete
falseまたはプロパティを省略時true
EJB-JAR(2.1)
WAR(2.4)WEB-INF/classes以下
WEB-INF/lib/JARファイル
(凡例)
○:アノテーション情報を取得する
-:アノテーション情報を取得しない

ライブラリJARのアノテーション情報を取得するかどうかを次の表に示します。

表11-5 ライブラリJARの場合

モジュールJava EE 5に準拠するJ2EEアプリケーションJ2EE 1.4以前に準拠するJ2EEアプリケーション
DDのmetadata-completeタグDD省略DDのmetadata-completeタグDD省略
falseまたはタグを省略truefalseまたはタグを省略true
EJB-JAR(3.0)××
WAR(2.5)×××
(凡例)
○:アノテーション情報を取得する(J2EEアプリケーションに一つでも該当するモジュールが含まれている場合,取得する)
-:アノテーション情報を取得しない
×:サポートされていない組み合わせである

注意
アノテーション情報を読み込むために必要なクラスが不足している場合,または不正なクラスがある場合は,アノテーション情報の取得処理中に例外が発生します。クラスのロード時に例外が発生した場合の挙動について次に示します。
アプリケーションサーバのバージョンが08-00以降の場合
例外ログ,およびメッセージKDJE42380-Wを出力し処理を続行します。なお,例外が発生した場合にエラーにしたいときは,プロパティejbserver.deploy.annotations.load_check.enabledの値をfalseからtrueへ変更してください。
アプリケーションサーバのバージョンが08-00よりも前の場合
エラーとなり処理を中断します。