プロジェクト依存関係には、以下の 3 種類があります。
- すべてのプロジェクト (Web サービス、動的 Web プロジェクト、ユーティリティ プロジェクト、および EJB プロジェクト) をまとめてサーバまたはアーカイブにデプロイする場合は、それらすべてを EAR プロジェクトに追加する必要があります。プロジェクトの作成時に自動的に設定できます。
- 既存の Web サービス プロジェクトまたは動的 Web プロジェクトを含む EAR にユーティリティ プロジェクトや EJB プロジェクトを追加する場合は、ビルド時に新しいユーティリティ プロジェクトや EJB プロジェクトを各 Web プロジェクト (Web サービス プロジェクトおよび動的 Web プロジェクト) から利用できるようにしておく必要があります。プロジェクトの作成時に自動的に設定できます。
- ユーティリティ プロジェクトや EJB プロジェクトが他のユーティリティ プロジェクトや EJB プロジェクトに依存する場合は、それらの依存関係を明示的に設定する必要があります。依存関係が循環しないよう注意しなければなりません。
以下のような通常の手順では、依存関係が自動的に作成されます。
- 最初に EAR プロジェクトを作成し、新しいプロジェクトを作成する際に、プロジェクト作成ウィザードで [Add project to an EAR] オプションを選択してプロジェクトを EAR に追加した場合
または
- 先にプロジェクトを作成してから EAR プロジェクトを作成し、プロジェクト作成ウィザードを使用してプロジェクトを EAR に追加した場合
以下の場合は、依存関係の明示的なコンフィグレーションが必要になることがあります。
- プロジェクトを作成するのではなく、ワークスペースにインポートした場合
- プロジェクトの作成時に EAR に追加しなかった場合
- ビルド時または実行時に、ユーティリティ プロジェクトまたは EJB プロジェクトが利用できないために、プロジェクトが正しくコンパイルされなかった場合
- ソース ファイルの編集時に、ユーティリティ プロジェクトまたは EJB プロジェクトのオブジェクトへの参照が正しく認識されなかった場合
手順 1 : プロジェクトを EAR に追加する
プロジェクトはローカルで正しくコンパイルされたのに、EAR にすべてのプロジェクトが含まれていなかったためにサーバに正しくデプロイされなかった場合は、この依存関係を明示的にコンフィグレーションしなければならないことがあります。EAR に関連付けられているすべてのプロジェクト (EJB プロジェクト、ユーティリティ プロジェクト、動的 Web プロジェクト、Web サービス プロジェクトなど) を EAR に追加する必要があります。
プロジェクトを EAR プロジェクトに追加するには、次の手順に従います。
- [パッケージ・エクスプローラ] ビューで EAR プロジェクト名を右クリックし、コンテキスト メニューから [プロパティ] を選択します。[プロパティ] ダイアログの左側のバーで、[J2EE Module Dependencies] をクリックします。次の図の例では、プロジェクトが 3 つあります。そのうちの 1 つはすでに EAR に追加されており、残りの 2 つはまだ追加されていません。
- EAR プロジェクトに追加する各プロジェクトの名前の横にあるボックスをチェックします。[OK] をクリックすると、それらのプロジェクトが EAR に追加されます。
ユーティリティ プロジェクトや EJB プロジェクトを EAR に追加しても、同じ EAR 内の Web プロジェクトから利用できるようにはなりません。EAR 内の Web プロジェクトにユーティリティ プロジェクトや EJB プロジェクトを追加するには、それらのプロジェクトに依存するすべてのプロジェクトについて次の手順を実行する必要があります。
手順 2 : Web プロジェクトにユーティリティ プロジェクトや EJB プロジェクトを追加する
EJB プロジェクトとユーティリティ プロジェクトには、Web サービス プロジェクトや動的 Web プロジェクトから使用するコードが含まれています。一般的な選択肢としては、EJB プロジェクトとユーティリティ プロジェクトを、EAR 内のすべてのプロジェクトで利用できるようにすることが考えられます。この場合、実際的な面では以下を意味します。
- ユーティリティ プロジェクトは、ライブラリにコンパイルされて EAR の APP-INF/lib フォルダに格納され、EAR 内のすべてのプロジェクトによって共有される。これらのライブラリは、各 Web プロジェクトのビルド パスに挿入される。
- EJB は実行時にロードされ、エンタープライズ アプリケーション内のすべての Web プロジェクトや Web モジュールで利用できるようになる。
しかし、プロジェクト依存関係が正しくコンフィグレーションされていないと、ユーティリティ プロジェクトと EJB プロジェクトをビルド時に利用することはできません。
ユーティリティ プロジェクトと EJB プロジェクトを EAR 内のすべてのプロジェクトで利用できるように指定するには、ユーティリティ プロジェクトや EJB プロジェクトを作成する際に、作成ウィザードの 3 番目の画面で [EAR '(EAR プロジェクト名)' 内のすべての Web プロジェクトにこのプロジェクトへの依存関係を追加します] チェック ボックスをチェックするのがもっとも単純な方法です。これはデフォルトの設定です。
ユーティリティ プロジェクトや EJB プロジェクトの作成時にプロジェクト依存関係を設定しなかった場合でも、これらのプロジェクトを EAR 内の Web サービス プロジェクトや動的 Web プロジェクトから利用できるようにすることは可能です。その場合は、Web プロジェクトごとに次の手順を実行します。
- [パッケージ・エクスプローラ] ビューで Web サービスまたは動的 Web プロジェクトの名前を右クリックし、コンテキスト メニューから [プロパティ] を選択します。[プロパティ] ダイアログの左側のバーで、[J2EE Module Dependencies] をクリックします。[J2EE Modules] タブが選択されていることを確認してください。次の図の例では、現在のプロジェクトに追加されていない新しいユーティリティ プロジェクトが 1 つあります。
- 追加する各プロジェクトの名前の横にあるボックスをチェックします。[OK] をクリックすると、ユーティリティ プロジェクトまたは EJB プロジェクトがその Web プロジェクトに追加されます。
なお、[EJB クライアント JAR を持つ EJB JAR を参照します。] ボックスは、Workshop for WebLogic プロジェクトには影響しません。
手順 3 : ユーティリティ プロジェクトや EJB プロジェクトを他のユーティリティ/EJB プロジェクトで利用できるようにする
ユーティリティ プロジェクトや EJB プロジェクトは、相互に依存させることもできます。そのように設定するには、次の手順に従います。
- [パッケージ・エクスプローラ] ビューでユーティリティ プロジェクトまたは EJB プロジェクトを右クリックし、コンテキスト メニューから [プロパティ] を選択します。[プロパティ] ダイアログの左側のバーで、[J2EE Module Dependencies] をクリックします。[J2EE Modules] タブが選択されていることを確認してください。次の図の例では、現在のプロジェクトに追加されていないユーティリティ プロジェクトが 1 つあります。
![](images/J2EEDependenciesUtilEJB.gif)
追加する各プロジェクトの名前の横にあるボックスをチェックします。[OK] をクリックすると、選択したユーティリティ プロジェクトまたは EJB プロジェクトが、現在のユーティリティ プロジェクトまたは EJB プロジェクトに追加されます。
なお、[EJB クライアント JAR を持つ EJB JAR を参照します。] ボックスは、Workshop for WebLogic プロジェクトには影響しません。
EJB プロジェクトやユーティリティ プロジェクトの間の依存関係が循環しないよう注意してください。
関連トピック
アプリケーションとプロジェクト
ビルド プロセスについて
アプリケーションのデプロイメント、実行、デバッグ