ライブラリーは、複数の Java™ EE アプリケーションで共有できます。すべてのアプリケーションで実行時に同じクラスを使用するか、各アプリケーションで同じロケーションからロードされたクラスの別個のコピーを独自に使用することができます。
このタスクについて
以下の例では、
Alexandria というライブラリーは、次の 2 つのファイルで構成されています。
- alexandria-scrolls.jar と
- commons-lang.jar
Scholar というアプリケーションおよび
Student というアプリケーションが、
Academy というサーバー上で実行されており、このライブラリーに対するアクセス権限を両方のアプリケーションが必要としています。
手順
- ${WLP_USER_DIR} ディレクトリー内の servers/Academy ディレクトリーに mylib/Alexandria ディレクトリーを作成します。
例: wlp/usr/servers/Academy/mylib/Alexandria
- ファイル alexandria-scrolls.jar および commons-lang.jar を新規フォルダーにコピーします。
- Alexandria ライブラリーがロードされるように、アプリケーション用のクラス・ロードを構成します。
server.xml ファイルまたは組み込みファイルで、以下のコードを追加して、ライブラリーを定義します。
<library id="Alexandria">
<fileset dir="${server.config.dir}/mylib/Alexandria" includes="*.jar" scanInterval="5s" />
</library>
注: <library> エレメントは、<fileset> エレメント ID のコンマ区切りのリストが含まれた filesetRef 属性を取ることもできます。
- 両方のアプリケーションがライブラリーの単一コピーを共有するように、アプリケーションからライブラリーを参照します。
server.xml ファイルまたは組み込みファイルで、以下のコードを追加します。
<application id="scholar" name="Scholar" type="ear" location="scholar.ear">
<classloader commonLibraryRef="Alexandria" />
</application>
<application id="student" name="Student" type="ear" location="student.ear">
<classloader commonLibraryRef="Alexandria" />
</application>
注: <commonLibraryRef> エレメントは、ライブラリー ID のコンマ区切りのリストを取ることができます。
- オプション: 同じ JAR ファイルからロードされたクラス・セットを独自に持つように、別のアプリケーションを構成します。
例えば、
Spy という別のアプリケーションで独自のクラスのコピーが必要な場合は、ディスク上の同じ物理ファイルを使用できます。
server.xml ファイルまたは組み込みファイルで、以下のコードを追加します。
<application id="spy" name="Spy" type="war" location="spy.war">
<classloader privateLibraryRef="Alexandria" />
</application>
注: <privateLibraryRef> エレメントは、ライブラリー ID のコンマ区切りのリストを取ることができます。