6.3. 创建自定义模块
可以添加自定义静态模块,以便为在 JBoss EAP 上运行的部署提供资源。您可以手动创建模块 ,也可以使用管理 CLI 来创建模块。
创建模块后,如果需要将其资源提供给应用,则必须将模块添加为依赖项。
手动创建自定义模块
您可以按照以下步骤手动创建自定义模块。
在
EAP_HOME/modules/
目录中创建适当的目录结构。示例:创建 MySQL JDBC Driver Directory 结构
$ cd EAP_HOME/modules/ $ mkdir -p com/mysql/main
将 JAR 文件复制到
main/
子目录中。示例:复制 MySQL JDBC 驱动程序 JAR
$ cp /path/to/mysql-connector-java-8.0.12.jar EAP_HOME/modules/com/mysql/main/
在
main/
子目录中创建module.xml
文件,并在 文件中指定适当的资源和依赖项。示例:MySQL JDBC Driver
module.xml
文件<?xml version="1.0" ?> <module xmlns="urn:jboss:module:1.1" name="com.mysql"> <resources> <resource-root path="mysql-connector-java-8.0.12.jar"/> </resources> <dependencies> <module name="javaee.api"/> <module name="sun.jdk"/> <module name="ibm.jdk"/> <module name="javax.api"/> <module name="javax.transaction.api"/> </dependencies> </module>
使用管理 CLI 创建自定义模块
您可以使用模块 add management CLI 命令来创建自定义模块
。
使用 模块
管理 CLI 命令添加和删除模块,仅作为技术预览提供。此命令不适合在受管域中使用,或在远程连接管理 CLI 时使用。在生产环境中,应当手动添加 和删除模块。
技术预览功能不包括在红帽生产服务级别协议(SLA)中,且其功能可能并不完善。因此,红帽不建议在生产环境中使用它们。这些技术预览功能可以使用户提早试用新的功能,并有机会在开发阶段提供反馈意见。
如需有关技术预览功能支持范围的信息,请参阅红帽客户门户网站中的技术预览功能支持范围。
- 启动 JBoss EAP 服务器。
启动管理 CLI。
$ EAP_HOME/bin/jboss-cli.sh
使用
模块 add
management CLI 命令,添加新的核心模块。module add --name=MODULE_NAME --resources=PATH_TO_RESOURCE --dependencies=DEPENDENCIES
示例:创建一个 MySQL 模块
module add --name=com.mysql --resources=/path/to/mysql-connector-java-8.0.12.jar --dependencies=javaee.api,sun.jdk,ibm.jdk,javax.api,javax.transaction.api
请参阅 模块命令参数 以了解可用于自定义此命令的参数,例如,使用外部模块目录提供您自己的
module.xml
文件,或者为模块指定备选插槽。您还可以执行模块 --help
来了解有关使用此命令添加和删除模块的更多详细信息。
添加模块作为依赖性
为了使您的应用能够访问此模块的资源,您必须将模块添加为依赖项。
- 有关将模块添加为依赖性到所有应用程序的说明,请参阅 Define Global Modules 部分。
例如,下列步骤添加一个 JAR 文件,该文件包含多个属性文件作为模块,再定义全局模块,以便应用随后可以加载这些属性。
将 JAR 文件添加为核心模块。
module add --name=myprops --resources=/path/to/properties.jar
将此模块定义为全局模块,使它可供所有部署使用。
/subsystem=ee:list-add(name=global-modules,value={name=myprops})
然后,应用可以从 JAR 中包含的其中一个属性文件中检索属性。
Thread.currentThread().getContextClassLoader().getResource("my.properties");