6.6. 创建全局目录
全局目录可以更好地替代全局模块方法。例如,如果要更改全局模块中列出的库名称,您必须删除全局模块,更改库的名称,然后将库添加到一个新的全局模块。如果您更改了全局目录中所列的库名称,您只需要重新加载服务器即可使库名称更改适用于所有部署。
使用全局目录,您可以执行以下操作:
- 在已部署的应用间共享多个库.
- 通过将通用框架(通常添加到应用库中)移动到共同位置来维护库。
当您创建全局目录时,EE 子系统将配置全局目录,然后扫描 目录以创建 JBoss 模块依赖项。模块依赖项包括全局目录库和 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 模块依赖关系中。
如果更改了全局目录的内容,或者在全局目录中更改或添加 JAR 文件,您必须重新加载服务器,使更改可用于已部署的应用。例如,如果您替换了全局目录中的 JAR 库,请重新加载服务器以确保重新扫描全局目录,并使用更改的 JAR 库更新部署的应用程序。
其他资源
- 有关在 JBoss EAP 中定义全局模块的详情,请参考 定义全局模块。
- 有关在文件系统路径中使用逻辑名称的详情,请参考 文件系统路径。
- 有关 JBoss EAP 配置文件的详情,请参阅管理 JBoss EAP 配置文件。
- 有关使用域控制器的详情,请参考 关于域控制器。