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. サーバーインスタンスをリロードして、グローバルディレクトリーをアクティベートします。

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

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

関連情報