6.6. グローバルディレクトリーの作成

グローバルディレクトリーは、グローバルモジュールの代わりのアプローチとなります。たとえば、グローバルモジュールに一覧表示されているライブラリーの名前を変更する場合は、グローバルモジュールを削除し、ライブラリーの名前を変更して新しいグローバルモジュールにライブラリーを追加する必要があります。グローバルディレクトリーにリストされたライブラリーの名前を変更する場合は、サーバーをリロードして、全デプロイメントでライブラリー名の変更を使用できるようにする必要があります。

グローバルディレクトリーを使用すると以下を実行できます。

  • デプロイされたアプリケーションに複数のライブラリーを共有します。
  • 通常、アプリケーションライブラリーに追加された共通のフレームワークを共通の場所に移すことで、ライブラリーを維持します。

グローバルディレクトリーの作成時に、EE サブシステムはグローバルディレクトリーを設定してから、ディレクトリーをスキャンして JBoss Modules モジュール依存関係を作成します。モジュール依存関係には、グローバルディレクトリーライブラリーと JAR ファイルが含まれます。このモジュールの依存関係には、以下のリソースローダーも含まれます。

  • パスリソースローダーは、ファイルをアプリケーションに対するリソースとして提供します。
  • リソースローダーは、JAR ファイルに含まれるクラスをアプリケーションに提供します。

EE サブシステムは、デプロイされたアプリケーションごとにモジュール依存関係をシステム依存関係として追加します。

前提条件

  • オペレーティングシステムに標準ディレクトリーを作成します。この標準ディレクトリーには、アプリケーションにデプロイする必要のあるすべての JAR ファイルとリソースが含まれている必要があります。これにより、ディレクトリーツリーが作成されます。

    アプリケーションにコピーされた共通のライブラリーの一覧を示す共通ディレクトリーの例:

    /my-common-libs/log4j2.xml
    /my-common-libs/libs/log4j-api-2.14.1.jar
    /my-common-libs/libs/log4j-core-2.14.1.jar

    注記

    サーバーはアプリケーションをデプロイし、グローバルディレクトリーを読み込むため、サーバーのライブラリーバージョンを上書きするグローバルディレクトリーを設定することはできません。グローバルディレクトリーは、サーバーに同梱されたライブラリーを置き換えることはできません。

手順

  1. サーバーの設定に合わせて、グローバルディレクトリーを作成します。オプションの relative-to 属性を使用して、相対パスでグローバルディレクトリーを設定できます。

    スタンドアロンサーバーでグローバルディレクトリーを作成する例:

    [standalone@localhost:9990 /] /subsystem=ee/global-directory=my-common-libs:add(path=my-common-libs, relative-to=jboss.home.dir)

    管理対象ドメインのサーバーにグローバルディレクトリーを作成する例:

    [domain@localhost:9990 /] /profile=default/subsystem=ee/global-directory=my-common-libs:add(path=my-common-libs, relative-to=jboss.server.data.dir)

    管理対象ドメインのサーバーでは、relative-path 属性を使用して、domain.xml で定義される JBoss EAP プロファイルの下にグローバルディレクトリーを追加できます。この relative-to 属性へのシステムパスまたはカスタムのシステムパスのいずれかを指定できます。

    注記

    管理対象ドメインでサーバーを実行する場合は、グローバルディレクトリーのコンテンツがすべてのサーバーインスタンス全体で一貫性を保つ必要があります。たとえば、各ホストにはグローバルディレクトリーのコンテンツを含むローカルファイルシステムディレクトリーが含まれている必要があります。

  2. サーバーインスタンスをリロードしてグローバルディレクトリーをアクティブにします。

    サーバーをリロードする必要があります。そのため、サーバーはディレクトリーツリーの内容(各サブディレクトリーレベルを含む)をアルファベット順にスキャンし、root ディレクトリーから開始できます。サーバーは、各ディレクトリーレベルのファイルをアルファベット順で JBoss Modules モジュールの依存関係に追加します。

    グローバルディレクトリーの内容を変更したり、グローバルディレクトリーに JAR ファイルを変更または追加したりした場合は、サーバーをリロードしてデプロイされたアプリケーションで変更を使用できるようにする必要があります。たとえば、グローバルディレクトリーの JAR ライブラリーを置き換える場合は、サーバーをリロードしてグローバルディレクトリーを再スキャンし、デプロイされたアプリケーションを変更した JAR ライブラリーで更新します。

関連情報