Hitachi

Cosminexus V11 アプリケーションサーバ 機能解説 基本・開発編(コンテナ共通機能)


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

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

注※

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

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

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

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

[図データ]

なお,EJB-JAR(ejb-jar.xmlのバージョンが2.1)に含まれるクラスファイルまたはWAR(web.xmlのバージョンが2.4)に含まれるクラスファイルからアノテーション情報を読み込む場合のアノテーションは,アプリケーションサーバ独自の仕様です。ただし,この機能は,旧バージョンとの互換機能です。詳細は,マニュアル「アプリケーションサーバ 機能解説 互換編」の「19.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)の場合のアノテーション情報を取得するかどうかの条件を次の表に示します。

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

モジュール

DDのmetadata-completeタグ

DD省略

falseまたはタグを省略

true

EJB-JAR(3.0)

WAR(2.5)

(凡例)

○:アノテーション情報を取得する

−:アノテーション情報を取得しない

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

表17‒4 ライブラリ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)

×

×

×

(凡例)

○:アノテーション情報を取得する(J2EEアプリケーションに一つでも該当するモジュールが含まれている場合,取得する)

−:アノテーション情報を取得しない

×:サポートされていない組み合わせである

注※ プロパティejbserver.deploy.annotations.load_libjars.enabledの値にfalseが設定されている場合,ライブラリJARのクラス内のアノテーション情報を取得しません。

注意事項

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