すべての Java EE アプリケーションのグローバル・ライブラリーの提供

すべての Java™ EE アプリケーションが使用できるグローバル・ライブラリーを提供できます。これを行うには、対象ライブラリーの JAR ファイルをグローバル・ライブラリー・ディレクトリーに配置してから、各アプリケーションのクラス・ローダー構成でグローバル・ライブラリーの使用を指定します。ただし、これらのグローバル・ライブラリーを、他のアプリケーション (OSGi アプリケーションなど) で使用することはできません。

このタスクについて

環境変数 WLP_USER_DIR で指定されたユーザー・ディレクトリーの下に、グローバル・ライブラリーを配置できる以下のロケーションがあります。
  • ${shared.config.dir}/lib/global
  • ${server.config.dir}/lib/global
アプリケーションの開始時にこれらのロケーションにファイルが存在し、そのアプリケーションで <classloader> エレメントが構成されていない場合は、アプリケーションはこれらのライブラリーを使用します。クラス・ローダー構成が存在する場合は、グローバル・ライブラリーが明示的に参照されていない限り、これらのライブラリーは使用されません。
重要: グローバル・ライブラリーを使用する場合は、各アプリケーションで <classloader> エレメントも構成することをお勧めします。サーブレット仕様では、アプリケーションは、クラス・ローダー親チェーンでグローバル・ライブラリー・クラス・ローダーを共有する必要があります。このため、各アプリケーションのクラス・ローダーの分離が行われません (そうでない場合は分離されます)。そのため、アプリケーションは、Liberty でロードされるクラスおよび相互に長期の影響を持つ可能性が高くなり、アプリケーション間でクラス・スペースの整合性の問題が生じる可能性が高くなります (特に、実行中のサーバーでフィーチャーが追加されたり削除されたりするにつれてこれが当てはまります)。これらの考慮事項はいずれも、構成で <classloader> エレメントを指定したアプリケーションには、この分離が維持されるため、適用されません。

以下の例では、Scholar というアプリケーションが、Alexandria という共通ライブラリーを使用し、またグローバル・ライブラリーを使用するように構成されています。

server.xml ファイルまたは組み込みファイルで、以下のコードを追加して、アプリケーションでグローバル・ライブラリーを使用可能にします。
<application id="" name="Scholar" type="ear" location="scholar.ear">
  <classloader apiTypeVisibility="spec" commonLibraryRef="Alexandria, global" />
</application>
グローバル・ライブラリーの設定は、特殊 ID global を使用して library エレメントとして明示的に構成できます。以下に例を示します。
<library id="global">
  <fileset dir="/path/to/folder" includes="*.jar" />
</library>

トピックのタイプを示すアイコン タスク・トピック

ファイル名: twlp_classloader_global_libs.html