ライブラリーは、複数の Java™ EE アプリケーション間で共有できます。 すべてのアプリケーションで実行時に同じクラスを使用するか、各アプリケーションで同じロケーションからロードされたクラスの別個のコピーを独自に使用することができます。
Liberty のクラス・ローダー構成に関する最新資料は、 Open Liberty Web サイトから入手できます。
このタスクについて
以下の例では、
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 のコンマ区切りリストを取ることができます。