デプロイメント・プロファイルの依存性について

J2EEコンポーネントの開発では、通常J2EEコンポーネントは相互に依存しています。JDeveloperで、複数のJ2EEモジュールから成るアプリケーションを作成してコンパイルし、デプロイメント・プロファイルに直接デプロイする方法を提供しているのは、そのためです。デプロイメント・プロファイルはソフトウェア・モジュールを具体的に表現したものであるため、デプロイメント・プロファイルでのモジュール間の依存性について把握しておく必要があります。プロファイル依存性の指定は、アプリケーションのアセンブリ・プロセスの重要な部分です。JDeveloperでは、デプロイ時にすべてのプロファイル依存性を調べ、すべてのモジュールがデプロイメント・プロファイルで指定されているとおりに、パッケージされ、コンパイルされ、デプロイされていることを確認します。

JDeveloperでは、デプロイメント・プロファイルは、プロジェクトのデプロイ時のパッケージ方法を示し、多くの場合、プロジェクトよりも詳しいJ2EEモジュール境界を定義します。プロジェクトの依存性はコンパイルと密接に関連し、プロファイルの依存性はデプロイと密接に関連します。プロファイルの依存性は、デプロイメント・プロファイルが他の1つ以上のデプロイメント・プロファイルに対して持つ依存性を参照します。

通常、デプロイ時の依存性は、J2EEモジュール(JAR、WARまたはEJB JAR)としてパッケージされます。デプロイメント・プロファイル依存性を選択すると、埋込みOC4Jサーバー内でのアプリケーションの実行、デバッグ、CodeCoach処理またはプロファイル作成が可能になります。したがって、エンタープライズ・アプリケーションをテストするたびに、J2EEモジュールをリモートOC4Jインスタンスにデプロイする必要はありません。

あるいは、エンタープライズ・アプリケーションをOC4Jインスタンスにデプロイする準備ができたら、選択したJ2EEモジュールを含むJ2EEエンタープライズ・アーカイブ(EAR)ファイルをデプロイメントのために作成することもできます。JDeveloperは、選択したプロファイル依存性を単一のEARファイルにパッケージしてから、そのファイルを選択したアプリケーション・サーバーにデプロイします。

JDeveloperはエンタープライズ・アプリケーションの開発を目的としているため、Javaテクノロジのスケーラビリティ、移植性、プログラミングの容易さなどの利点をすべて十分に活用するように設計されています。J2EEアプリケーション・モデルにより、開発者は、J2EEアプリケーション内で特殊な機能を実行する特殊なタイプのコンポーネント(EJB、JSP、サーブレット、クライアント・アプリケーション)を簡単に作成できます。たとえば、インターネット・ショッピングのアプリケーションには、ログインおよびチェックアウト機能を持つEJB、トランザクション処理などのWebサーバーのタスクを実行するJSPまたはサーブレット、ショッピング・カタログ内の品目を説明するHTMLおよびイメージを組み込むことができます。ただし、これらのアプリケーション・コンポーネントおよびクラスパスは、連携して動作するようにアプリケーション・サーバー上にデプロイする必要があります。

デプロイメント・プロファイルの依存性は、「プロファイルの依存性」ページで選択できます。このページは、ナビゲータでデプロイメント・プロファイル・アイコン.deploy)を右クリックし、「設定」を選択すると表示されます。現行ワークスペース内のデプロイメント・プロファイルのみがリストに表示され、選択できます。詳細を参照するには、「プロファイルの依存性」ページの「ヘルプ」ボタンをクリックしてください。

次のようなプロファイル依存性を選択できます。

あるプロジェクトに含まれているプロファイルをデプロイするとき、そのプロジェクトが他のプロファイルについてプロファイルとプロファイルの依存性を持っている場合、そのプロファイルは、プロジェクトで指定されている依存性をデプロイ時に組み込みます。次の状況では、webapp1.deployをデプロイすると、EARファイルにwebapp1.warとejb1.jarが両方含まれます。

デプロイするデプロイメント・プロファイルにデプロイメント・プロファイル依存性が存在しない場合は、ワークスペース内のそのプロジェクトのみがデプロイ前にコンパイルされます。デプロイメント・プロファイル依存性に含まれるプロジェクトのみが、まとめてコンパイルされます。デプロイメント・プロファイル依存性に含まれないワークスペースのモジュールまたはプロファイルは、コンパイルされません。

MANIFEST.MFクラスパス属性の使用

共通JARファイルを共有するJAR、WAR、EJB JARモジュール間のプロファイル依存性を作成するときは、META-INF/MANIFEST.MFクラスパス属性を使用して、デプロイ時にまとめてJARファイルをリンクできます。デプロイメント・プロファイル設定の「JARオプション」ページで、「manifestファイルを含める(META-INF/MANIFEST.MF)」チェックボックスをチェックします。これにより、これらのモジュールによって共有されるすべての共通JARが、同じEARファイルに一度で組み込まれます。このチェックボックスのチェックを外すと、依存関係にあるすべてのJARがWEB-INF/libディレクトリにコピーされるため、JARが重複し、EARファイルのサイズが大きくなる場合があります。

循環依存性の回避

プロファイル間の依存性に循環性があるデプロイメント・プロファイルは回避してください。たとえば、次のシナリオの場合、循環依存性が生じます。

JDeveloperでは、循環依存性が発生した場合でも、デプロイが試行されます。ただし、デプロイメント・ログ・ウィンドウに、循環依存性が検出されたことを示す警告が表示されます。循環依存性の存在は、一般にモジュールの境界が正しく確立されていないことを意味します。通常、循環依存性を持たせずにモジュールの同じセマンティック関係を維持できるよう、クラスおよびモジュールを配置することが可能です。

循環性は、Javaパッケージ間、複数のパッケージのフレームワーク間でも発生します。ただし、ある程度複雑になると、モジュールが提供する抽象レベルおよびカプセル化レベルを維持するには、循環性を回避することが非常に重要です。デプロイメント・プロファイルはこうしたモジュールを表現することを目的として作成されるため、検出された循環依存性はすべて、デプロイメント・ログ・ウィンドウの警告メッセージに示されます。

「J2EE Blueprints」はドキュメントとサンプル・アプリケーションで構成されており、J2EE互換アプリケーションの最適な開発方法が示されています。「Packaging and Deployment」の章を参照してください。コピーは、次のURLからダウンロードできます。

http://java.sun.com/blueprints/ja/index.html#blueprints

J2EEアプリケーション・モデルの詳細は、次のサイトを参照してください。

http://java.sun.com/j2ee/ja/overview2.html


関連項目

プロジェクトの依存性について
Oracle9i Application Serverへのデプロイについて
デプロイメント・プロセスについて
J2EEエンタープライズ・アーカイブ(EAR)のアセンブルおよびデプロイ
J2EEデプロイメント関連のリファレンス・リスト
n層のビジネス・コンポーネント・アーキテクチャの理解
アプリケーション・サーバー接続の作成方法
J2EEアプリケーションのデプロイ方法
Oracle9iデータベースへのデプロイ方法
Business Components for Java(BC4J)のデプロイについて