WebLogic J2EE ライブラリ : 一般的な操作と問題

このトピックでは、Weblogic J2EE ライブラリに関する一般的な操作と問題について説明します。

用語

Weblogic J2EE ライブラリ : J2EE ライブラリとは、WebLogic Server に共有ライブラリとして登録されているエンタープライズ アプリケーション アーカイブ、スタンドアロン EJB、Web アプリケーション モジュール、または JAR ファイルのことです。ライブラリ リソースは複数のアプリケーションで共有できるため、リソースのコピーをアプリケーションごとに重複して用意する必要がなくなります。J2EE ライブラリの概要については、Weblogic server ドキュメントの「J2EE ライブラリ : 概要」を参照してください。

ライブラリ参照: WebLogic J2EE ライブラリは、ライブラリの名前、仕様バージョン (省略可能)、実装バージョン (省略可能)、および (存在する場合には) より新しいバージョンのライブラリを使用するかどうかを指定することで、間接的に参照されます。ライブラリ参照は、プロジェクトのクラスパスやデプロイメント記述子 (weblogic-application.xml および weblogic.xml) で使用されます。ライブラリ参照は必要に応じてライブラリ レジストリに対して解決されます。

ライブラリ名は、その仕様バージョンまたは実装バージョンを反映しているとは限りません。たとえば、beehive-netui-1.0.1-10.0 という名前のライブラリのバージョン番号が 1.0 で、実装番号が 1.0.2.2 である場合があります。

ライブラリ レジストリ (またはレジストリ): ライブラリ参照の解決に使用される、認識済み WebLogic J2EE ライブラリのリスト。IDE では、[ウィンドウ|WebLogic|J2EE ライブラリ] にあるワークスペースの環境設定ページを使用して、レジストリの確認や操作ができます。 レジストリは、実行時にドメインの config.xml ファイルに記述されます。

一般的な操作

ライブラリ参照のプロジェクト クラスパスへの追加

1. [プロジェクト・エクスプローラ] ビューで、問題とするプロジェクトを選択します。
2. [プロジェクトプロパティ] の順に選択します。
3. ダイアログの左側にあるツリーで [Java のビルド・パス] ノードを見つけて、選択します。
4. [ライブラリー] タブを開きます。
5. [ライブラリーの追加] ボタンをクリックします。
6. [WebLogic J2EE ライブラリ] を選択してから、[次へ] をクリックします。
7. [参照] をクリックして参照する必要のあるライブラリを選択します。
8. 必要に応じて参照情報を調整します。
9. [終了] をクリックします。

プロジェクト クラスパスのライブラリ参照の変更

1. [プロジェクト・エクスプローラ] ビューで、問題とするプロジェクトを選択します。
2. [プロジェクトプロパティ] の順に選択します。
3. ダイアログの左側にあるツリーで [Java のビルド・パス] ノードを見つけて、選択します。
4. [ライブラリー] タブを開きます。
5. ライブラリのリストで [WebLogic J2EE ライブラリ [<ライブラリ名>]] というエントリを見つけて、選択します。
6. [編集] をクリックします。
7. ライブラリ参照を確認します。必要な場合には変更を行って、[完了] ボタンをクリックします。

プロジェクト クラスパスからライブラリ参照の削除

1. [プロジェクト・エクスプローラ] ビューで、問題とするプロジェクトを選択します。
2. [プロジェクトプロパティ] の順に選択します。
3. ダイアログの左側にあるツリーで [Java のビルド・パス] ノードを見つけて、選択します。
4. [ライブラリー] タブを開きます。
5. ライブラリのリストで [WebLogic J2EE ライブラリ [<ライブラリ名>]] というエントリを見つけて、選択します。
6. [削除] をクリックします。

ライブラリ参照のデプロイメント記述子への追加

1. [プロジェクト・エクスプローラ] ビューで、問題とするプロジェクトを選択し、展開します。
2. [WebLogic のデプロイメント記述子] というラベルのノードを見つけて、展開します。
3. [J2EE ライブラリ] というラベルのノードを見つけます。
4. [J2EE ライブラリ] ノード上で右クリックして、[追加] を選択します。
5. [参照] をクリックして、参照する必要のあるライブラリを選択します。
6. 必要に応じて参照情報を調整します。
7. [OK] ボタンをクリックします。

デプロイメント記述子内のライブラリ参照の変更

1. [プロジェクト・エクスプローラ] ビューで、問題とするプロジェクトを選択し、展開します。
2. [WebLogic のデプロイメント記述子] というラベルのノードを見つけて、展開します。
3. [J2EE ライブラリ
] というラベルのノードを見つけます。
4. 問題とするライブラリを見つけて右クリックし、[編集] を選択します。

デプロイメント記述子からライブラリ参照の削除

1. [プロジェクト・エクスプローラ] ビューで、問題とするプロジェクトを選択し、展開します。
2. [WebLogic のデプロイメント記述子] というラベルのノードを見つけて、展開します。
3. [J2EE ライブラリ] というラベルのノードを見つけて、展開します。
4. 問題とするライブラリを見つけて右クリックし、[削除] を選択します。

新しいライブラリのレジストリへの追加

1. メニュー バーから [ウィンドウ] メニューを選択し、[設定] を選択します。
2. ダイアログの左側のツリーで [WebLogic] ノードを見つけます。
3. [Weblogic] ノードを展開し、[J2ee ライブラリ] ノードを選択します。
4. [追加] ボタンをクリックします。
5. [場所] フィールドの横にある [参照] ボタンをクリックします。
6. ディスク上の配置場所にあるライブラリ アーカイブを見つけて、[参照] ダイアログを閉じます。
7. [属性] セクションに表示されている情報を検証します。ライブラリ名、仕様バージョンおよび実装バージョンは、ライブラリの manifest.mf ファイルに指定されていない限り、[属性] テーブルを使用して変更できます。
[OK] をクリックします。

一般的な問題

このセクションでは、[問題] ビューに表示されるエラーおよび警告メッセージのリストを紹介します。 各エラーまたは警告メッセージについて解決策を提示します。

エラー

1. プロジェクト クラスパス上の「<library-name>」ライブラリへの参照を解決できません

問題: ワークスペースのライブラリ レジストリを使用して、プロジェクト クラスパス上の WebLogic J2EE ライブラリへのライブラリ参照を解決できません。プロジェクトをビルドできません。

解決策 1: ライブラリ レジストリに適切なライブラリを追加します。 この作業に関する説明については、「新しいライブラリのレジストリへの追加」を参照してください。

解決策 2: ライブラリ参照をレジストリに存在するものに合わせるよう変更します。 この作業に関する説明については、「プロジェクト クラスパスのライブラリ参照の変更」を参照してください。

解決策 3: ライブラリをプロジェクト クラスパスから削除します。この作業に関する説明については、「プロジェクト クラスパスからライブラリ参照の削除」を参照してください。

2. デプロイメント記述子内の「<library-name>」ライブラリへの参照を解決できません。

問題: ワークスペースのライブラリ レジストリを使用して、デプロイメント記述子 (プロジェクト タイプに応じて weblogic.xml または weblogic-application.xml ファイル) 内の WebLogic J2EE ライブラリへのライブラリ参照を解決できません。デプロイ後にプロジェクトを実行できないおそれがあります。

解決策 1: ライブラリ レジストリに適切なライブラリを追加します。この作業に関する説明については、「新しいライブラリのレジストリへの追加」を参照してください。

解決策 2: ライブラリ参照をレジストリに存在するものに合わせるよう変更します。この作業に関する説明については、「デプロイメント記述子内のライブラリ参照の変更」を参照してください。

解決策 3: デプロイメント記述子からライブラリを削除します。この作業に関する説明については、「デプロイメント記述子からライブラリ参照の削除」を参照してください。

3. 「<library-name>」ライブラリはこのプロジェクトのクラスパスにはありますが、EAR プロジェクト「<EAR-project-name>」の weblogic-application.xml ファイル内にはありません。

問題: プロジェクトに WEBLOGIC J2EE ライブラリへの参照がある一方で、このプロジェクトの属する EAR プロジェクトの WebLogic-application.xml ファイルではライブラリを参照していません。Weblogic server にはこのモジュールでこのライブラリを使用可能にする方法が知らされないので、これは実行時に問題を引き起こすおそれがあります。

解決策 1: ライブラリ参照を EAR プロジェクトの weblogic-application.xml ファイルに追加します。この作業に関する説明については、「ライブラリ参照のデプロイメント記述子への追加」を参照してください。

解決策 2: プロジェクト クラスパスからライブラリを削除します。 この作業に関する説明については、「プロジェクト クラスパスからライブラリ参照の削除」を参照してください。

4. 「<library-name>」ライブラリはこのプロジェクトのクラスパスにはありますが、weblogic.xml ファイル内にはありません。

問題: プロジェクトに WEBLOGIC J2EE ライブラリへの参照がある一方で、weblogic.xml ファイルではこのライブラリを参照していません。Weblogic Server にはこのモジュールでこのライブラリを使用可能にする方法が知らされないので、これは実行時に問題を引き起こすおそれがあります。

解決策 1: ライブラリ参照をこのプロジェクトの weblogic.xml ファイルに追加します。この作業に関する説明については、「ライブラリ参照のデプロイメント記述子への追加」を参照してください。

解決策 2: プロジェクト クラスパスからライブラリを削除します。この作業に関する説明については、「プロジェクト クラスパスからライブラリ参照の削除」を参照してください。

5. 「<library-name>」ライブラリは Web ライブラリなので、このプロジェクトから参照できません。

問題 : WebLogic Server では、WAR タイプの WebLogic J2EE ライブラリ内のクラスのみ Web モジュールから認識可能です。 EAR では weblogic-application.xml 内のライブラリなども参照可能ですが、参照先ライブラリ内のクラスは EAR 内のクラスから認識できません。

解決策 : プロジェクト クラスパスからライブラリを削除します。この作業に関する説明については、「プロジェクト クラスパスからライブラリ参照の削除」を参照してください。

6. 「<library-name>」ライブラリ参照は、weblogic.xml ファイル内では許可されません。許可されているのは WAR ライブラリのみです。

問題: Weblogic Server では war ライブラリに限って、weblogic.xml デプロイメント記述子からの参照がサポートされています。WAR 以外のライブラリが記述子内で参照されています。

解決策: weblogic.xml デプロイメント記述子からライブラリを削除します。この作業に関する説明については、「デプロイメント記述子からライブラリ参照の削除」を参照してください。

7. 「<library-name>」ライブラリを使用するには、このプロジェクトが EAR の一部である必要があります。

問題: このプロジェクトのクラスパスで参照されているライブラリは、このプロジェクトが EAR の一部で、その EAR の weblogic-application.xml デプロイメント記述子でこのライブラリを参照している場合にのみ、実行時にアクセス可能です。

解決策 1 : プロジェクト クラスパスからライブラリを削除します。この作業に関する説明については、「プロジェクト クラスパスからライブラリ参照の削除」を参照してください。

解決策 2: 新しい EAR プロジェクトを作成します (または既存の EAR プロジェクトを使用します)。EAR プロジェクトの [プロパティ](EAR を右クリックして [プロパティ] を選択) で、[J2EE モジュール依存関係] というラベルのついたページを選択します。 リスト内でプロジェクトを見つけ、その横にチェックマークをつけます。[完了] をクリックして、プロジェクトを EAR プロジェクトに関連付けます。

8. 「<library-name>」ライブラリを使用するには、このプロジェクトが Web アプリケーションの一部である必要があります。

問題 : このプロジェクトのクラスパスで参照されているライブラリは、このプロジェクトが Web アプリケーションの一部で、その Web アプリケーションの weblogic.xml デプロイメント記述子でこのライブラリを参照している場合にのみ、実行時にアクセス可能です。

解決策 1 : プロジェクト クラスパスからライブラリを削除します。この作業に関する説明については、「プロジェクト クラスパスからライブラリ参照の削除」を参照してください。

解決策 2 : 新しい動的 Web プロジェクトを作成します (または既存の動的 Web プロジェクトを使用します)。Web プロジェクトの [プロパティ] (Web プロジェクトを右クリックして [プロパティ] を選択) で、[J2EE モジュール依存関係] というラベルのついたページを選択します。[web librariesu] タブに切り替えます。リスト内でプロジェクトを見つけ、その横にチェックマークをつけます。[完了] をクリックして、プロジェクトを Web プロジェクトに関連付けます。

警告

1. このプロジェクトのクラスパスにある「<library-name>」ライブラリへの参照は、EAR プロジェクト「<EAR-project-name>」の weblogic-application.xml ファイル内にあるこのライブラリへの参照と異なっています。

問題: モジュール プロジェクトのクラスパスにあるライブラリ参照が、このモジュール プロジェクトの属する EAR プロジェクトの weblogic-application.xml ファイルにあるライブラリ参照と異なっています。プロジェクトが実行時に使用されるものとは異なるバージョンのライブラリに対してコンパイルされる可能性があるため、これは実行時に問題を引き起こすおそれがあります。

解決策 1: プロジェクト クラスパスのライブラリ参照を変更して、EAR プロジェクトの weblogic-application.xml ファイルにあるライブラリ参照と一致するようにします。この作業に関する説明については、「プロジェクト クラスパスのライブラリ参照の変更」を参照してください。

解決策 2: EAR プロジェクトの weblogic-application.xml ファイル内のライブラリ参照を変更して、プロジェクト クラスパスのライブラリ参照と一致するようにします。この作業に関する説明については、「デプロイメント記述子内のライブラリ参照の変更」を参照してください。

このプロジェクトのクラスパスにある「<library-name>」ライブラリへの参照は、weblogic.xml ファイル内にあるこのライブラリへの参照と異なります。

問題: このプロジェクトのクラスパスにあるライブラリ参照が weblogic.xml ファイル内のライブラリ参照と異なります。プロジェクトが実行時に使用されるものとは異なるバージョンのライブラリに対してコンパイルされる可能性があるため、これは実行時に問題を引き起こすおそれがあります。

解決策 1: プロジェクト クラスパスにあるライブラリ参照を変更して、weblogic.xml ファイル内のライブラリ参照に一致するようにします。この作業に関する説明については、「プロジェクト クラスパスのライブラリ参照の変更」を参照してください。

解決策 2: プロジェクトの weblogic.xml ファイル内のライブラリ参照を変更して、クラスパスにあるライブラリ参照と一致するようにします。この作業に関する説明については、「デプロイメント記述子内のライブラリ参照の変更」を参照してください。


さらにヘルプが必要ですか。質問は Workshop ニュース グループまでお寄せください。