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

    注意

    由于服务器部署应用并加载全局目录,因此您无法配置全局目录来覆盖服务器的库版本。全局目录无法替换服务器随附的库。

流程

  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 模块依赖关系中。

    如果更改了全局目录的内容,或者在全局目录中更改或添加 JAR 文件,您必须重新加载服务器,使更改可用于已部署的应用。例如,如果您替换了全局目录中的 JAR 库,请重新加载服务器以确保重新扫描全局目录,并使用更改的 JAR 库更新部署的应用程序。

其他资源