6.3. 创建自定义模块
可以添加自定义静态模块,使资源可供在 JBoss EAP 上运行的部署使用。您可以手动创建 模块,也可以使用 管理 CLI 创建模块。
创建模块后,如果应用程序需要提供其资源 ,您必须将模块添加为依赖项。
手动创建自定义模块
您可以按照以下步骤手动创建自定义模块。
在
EAP_HOME/modules/
目录中创建适当的目录结构。示例:创建 MySQL JDBC 驱动程序目录结构
cd EAP_HOME/modules/ mkdir -p com/mysql/main
$ cd EAP_HOME/modules/ $ mkdir -p com/mysql/main
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 将 JAR 文件或其他必要的资源复制到
main/
子目录。示例:复制 MySQL JDBC 驱动程序 JAR
cp /path/to/mysql-connector-java-5.1.36-bin.jar EAP_HOME/modules/com/mysql/main/
$ cp /path/to/mysql-connector-java-5.1.36-bin.jar EAP_HOME/modules/com/mysql/main/
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在
main/
子目录中创建module.xml
文件,在 文件中指定适当的资源和依赖项。示例:MySQL JDBC 驱动程序
module.xml
文件Copy to Clipboard Copied! Toggle word wrap Toggle overflow
使用管理 CLI 创建自定义模块
您可以使用 module add
management CLI 命令来创建自定义模块。
- 启动 JBoss EAP 服务器。
启动管理 CLI,但不使用
--connect
或-c
参数连接正在运行的实例。EAP_HOME/bin/jboss-cli.sh
$ EAP_HOME/bin/jboss-cli.sh
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 使用
module add
management CLI 命令来添加新的核心模块。module add --name=MODULE_NAME --resources=PATH_TO_RESOURCE --dependencies=DEPENDENCIES
module add --name=MODULE_NAME --resources=PATH_TO_RESOURCE --dependencies=DEPENDENCIES
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
执行 module --help
以了解有关使用这个命令添加和删除模块的更多详细信息。
将模块添加为依赖模块
要让您的应用能够访问此模块的资源,您需要将该模块添加为依赖项。
- 有关使用部署描述符添加特定于应用程序的依赖项的信息,请参阅 JBoss EAP 开发指南中的 Add a Explicit Module Dependency to a Deployment 部分。
- 有关将 模块作为依赖项添加到所有应用程序的说明,请参阅 定义 全局模块部分。
例如,以下步骤添加一个 JAR 文件,其中包含多个属性文件作为模块,并定义一个全局模块,以便应用随后加载这些属性。
将 JAR 文件添加为核心模块。
module add --name=myprops --resources=/path/to/properties.jar
module add --name=myprops --resources=/path/to/properties.jar
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 将此模块定义为全局模块,以便所有部署都可用。
/subsystem=ee:list-add(name=global-modules,value={name=myprops})
/subsystem=ee:list-add(name=global-modules,value={name=myprops})
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 然后,应用可以从 JAR 中包含的其中一个属性文件中检索属性。
Thread.currentThread().getContextClassLoader().getResource("my.properties");
Thread.currentThread().getContextClassLoader().getResource("my.properties");
Copy to Clipboard Copied! Toggle word wrap Toggle overflow