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
注記サーバーはアプリケーションをデプロイし、グローバルディレクトリーを読み込むため、グローバルディレクトリーを設定してサーバーのライブラリーバージョンを上書きすることはできません。グローバルディレクトリーは、サーバーに同梱されたライブラリーを置き換えることはできません。
手順
サーバーの設定に応じて、グローバルディレクトリーを作成します。オプションの
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
属性には、システムパスまたはカスタムシステムパスのいずれかを指定できます。注記管理対象ドメインでサーバーを実行する場合は、グローバルディレクトリーのコンテンツがすべてのサーバーインスタンスで一貫していることを確認する必要があります。たとえば、各ホストには、グローバルディレクトリーのコンテンツを含むローカルファイルシステムディレクトリーが含まれている必要があります。
サーバーインスタンスをリロードして、グローバルディレクトリーをアクティベートします。
サーバーが、ルートディレクトリーから開始して、アルファベット順に、各サブディレクトリーレベルを含むディレクトリーツリーの内容をスキャンできるように、サーバーをリロードする必要があります。サーバーは、各ディレクトリーレベルから JBoss Modules モジュールの依存関係に、アルファベット順にファイルを追加します。
グローバルディレクトリーの内容を変更するか、グローバルディレクトリーで JAR ファイルを変更または追加する場合は、サーバーをリロードして、デプロイされたアプリケーションで変更を利用できるようにする必要があります。たとえば、グローバルディレクトリーの JAR ライブラリーを置き換える場合は、サーバーをリロードして、グローバルディレクトリーを再スキャンし、変更した JAR ライブラリーでデプロイされたアプリケーションを更新します。
関連情報
- JBoss EAP でのグローバルモジュールの定義に関する詳細は、グローバルモジュールの定義 を参照してください。
- ファイルシステムパスに論理名を使用する方法は、ファイルシステムパス を参照してください。
- JBoss EAP プロファイルの詳細は、JBoss EAP プロファイルの管理 を参照してください。
- ドメインコントローラーの使用方法は、ドメインコントローラー を参照してください。