ガイドライン: J2EE モジュールのアセンブル
トピック
概論
このガイドラインでは、J2EE モジュールのアセンブリーを中心に説明します。
J2EE モジュールのアセンブリーは、次の実装要素となります。
- J2EE アーカイブ (WAR、EJB-JAR、JAR ファイル) および
- J2EE アーカイブの配置記述子 (XML ファイル)。配置記述子は、アーカイブの内容を記述し、包含されるコンポーネントが導入コンテナー内でどのように機能するかを記述します。
J2EE モジュールについて詳しくは、『ガイドライン:
J2EE モジュール』を参照してください。
アーカイブの定義
この手順では、アプリケーション・コンポーネント・プロバイダーがモジュールにパッケージされるコンポーネントを特定します。
複数のアーカイブは異なるプロセスに対して生成される可能性があります。例えば、テスト、デバッグ、異なる「製品」導入構成へのデリバリー用の個別のアーカイブです。テスト・アーカイブは、テスト・クラスを含み、クラスは、デバッグ・フラグを使用してビルドされますが、製品アーカイブは、テスト・クラスを含まず、デバッグ・フラグでビルドされません。アセンブルされているアーカイブの意図されたコンテキストは、設定されたアセンブリー・ワークスペースに影響を与えます。
配置記述子の定義
J2EE モジュールのアセンブルでの重要な手順は、配置記述子の定義です。この情報の多くは、各コンポーネントの設計で把握される必要があり、配置記述子の定義は、ほとんどが設計の一貫性の確認に関するものです。ラウンド・トリップ・エンジニアリングを使用している場合、配置記述子の生成をサポートするツールも存在します。
各アーカイブは、J2EE 標準の配置記述子を含み、さらに、ベンダー固有の記述子が存在する場合があります。標準の記述子、EJB-JAR 用の ejb-jar.xml と WAR 用の web.xml には、テスト環境およびそれ以外の「非実動」環境への導入のために完成させる必要のあるセクションと、実動環境への導入のために最終のアプリケーション・アセンブラーによって作成されるセクションがあります。
各記述子には、アプリケーション・コンポーネント・プロバイダー用とアプリケーション・アセンブラー用の情報があります。例えば、ejb-jar.xml に、この説明に関連する 3 つの主要なセクション <enterprise-beans>...</enterprise-beans>、<relationships>...</relationships>、および<assembly-descriptor>...、</assembly-descriptor> があります。アプリケーション・コンポーネント・プロバイダーでは、<enterprise-beans>...</enterprise-beans> セクションに、CMP フィールドなどの EJB のプロパティーを定義します。また、アプリケーション・コンポーネント・プロバイダーは、<relationships>...</relationships> セクションに EJB 間のオプションの関係も定義します。<assembly-descriptor>...</assembly-descriptor> セクションでは、トランザクション、セキュリティー・ロール、メソッド権限などを定義します。通常、このセクションを使用するのは、アプリケーション・アセンブラーのみです。アセンブラーは、ほかの 2 つのセクションの内容の変更を決めることもありますが、これはあまり一般的ではありません。この状況は、WAR アーカイブと似ています。アプリケーション・アセンブリーについて詳しくは、 『ガイドライン: J2EE アプリケーションのアセンブル』を参照してください。
設計時に、データ・モデルのデータベース・テーブルとコンテナー管理による持続性 (CMP) エンティティー EJB とのマッピングを定義した場合、これらのマッピングは、ベンダー固有の記述子のマッピング指示に反映される必要があります (マッピング指示は、標準的な EJB 記述子ではありません)。CMP エンティティー EJB のデータベース・テーブルへのマッピングについて詳しくは、『ガイドライン: エンティティー Bean の設計』を参照してください。
複数のコンポーネントが同一のアーカイブにパッケージされる場合 (『手順:
アーカイブの定義』を参照)、アプリケーション・コンポーネント・プロバイダーは、これらの配置記述子情報を統合する必要があります。例えば、複数の EJB を 1 つの EJB-JAR に結合する場合、アプリケーション・ コンポーネント・プロバイダーは、セキュリティー・ロールや、クロス・リファレンスなどの配置記述子の情報を調整する必要があります。
アーカイブの検証
導入の前にアーカイブの内容を検証することを推奨します。なぜなら、(特にアプリケーション・サーバー側で) 隠れたエラーがあると、わかりにくいエラー・メッセージや存在しないエラーのメッセージが出される可能性があるからです。例えば、重複した JNDI 名は、アーカイブにパッケージされたコンポーネントで使用できません。
|