共有ライブラリー

共有ライブラリーとは、複数のアプリケーションによって使用されるファイルです。 共有ライブラリーとグローバル・ライブラリーを使用して、システム上の重複するライブラリー・ファイルの数を削減できます。 適切に構成されている場合、アプリケーションおよびリソース・アダプターはライブラリーのクラスおよびリソースにアクセスできますが、その逆はありません。ライブラリーはアプリケーションまたはリソース・アダプターのクラスにもリソースにもアクセスできません。

Open Liberty Liberty のクラス・ローダー構成に関する最新資料は、 Open Liberty Web サイトから入手できます。

ライブラリー・エレメント

Liberty ライブラリーには、以下の server.xml ファイルの例に示すように、 folderfile、および filesetという 3 つの子エレメントがあります。
<library>
   <folder dir="..." />
   <file name="..." />
   <fileset dir="..." includes="*.jar" scanInterval="5s" />
</library>
  • folder: 構成されている各フォルダーの下にあるすべてのリソースがロード可能です
  • file: 各構成ファイルは、ネイティブ・ライブラリー、またはリソースのコンテナー (JAR ファイルや ZIP ファイルなど) のいずれかでなければなりません。 コンテナー内のすべてのリソースはロード可能になり、指定されている他のファイル・タイプはすべて無効になります。
  • fileset: 構成された各ファイル・セットは、実質的にファイルの集合です。 ファイル・セット内の各ファイルは、ネイティブ・ライブラリーであるか、リソースのコンテナー (JARや ZIP ファイルなど) でなければなりません。 コンテナー内のすべてのリソースはロード可能になり、指定されている他のファイル・タイプはすべて無効になります。
例:
<library id="someLibrary">
   <!-- Location of XML and .properties files in the file system for easy editing -->
   <folder dir="${server.config.dir}/editableConfig" />

   <!-- Location of some classes and resources in the file system -->
   <folder dir="${server.config.dir}/extraStuff" />

   <!-- A zip file containing some resources -->
   <file name="${server.config.dir}/lib/someResources.zip" />

   <!-- All the jar files in ther servers lib folder -->
   <fileset dir="${server.config.dir}/lib" includes="*.jar" scanInterval="5s" />
</library>

<application location ="webStore.war">
   <classloader commonLibraryRef="someLibrary" />
</application>
この例の構成スニペットにより、editableConfig ディレクトリー内のすべてのリソースを webStore アプリケーションによってロードできます。

グローバル・ライブラリー

グローバル・ライブラリーは、すべてのアプリケーションで使用できます。 JAR ファイルはグローバル・ライブラリー・ディレクトリーに配置され、その後、各アプリケーションのクラス・ローダー構成で指定されます。

グローバル・ライブラリーは、次の 2 つのロケーションに置くことができます。
  • ${shared.config.dir}/lib/global
  • ${server.config.dir}/lib/global
アプリケーションの開始時にこれらのロケーションにファイルが存在し、そのアプリケーションで <classloader> エレメントが構成されていない場合は、アプリケーションはこれらのライブラリーを使用します。 クラス・ローダー構成が存在する場合は、グローバル・ライブラリーが明示的に参照されていない限り、これらのライブラリーは使用されません。

詳しくは、 すべての Java™ EE アプリケーション用のグローバル・ライブラリーの提供を参照してください。

リソース・ファイル

Liberty ライブラリー内では、以下の server.xml ファイルの例に示すように、library エレメントでリソース・ファイルを定義することができます。
<library>
   <folder dir="..." />
   <file name="..." />
   <fileset dir="..." includes="*.jar" scanInterval="5s" />
   <folder dir="${server.config.dir}/mylibs" />
   <file name="${server.config.dir}/otherlibs/my.jar" />
</library>
この例にあるフォルダー設定により、mylibs ディレクトリー内のすべてのファイルをクラスパスで使用可能にすることができます。 このスタイルの項目を使用して、.xml.properties を使用可能にすることができます。