Java 11环境下WildFly访问sun.http类的自动化配置咨询
自动化配置WildFly兼容Java 11 sun包依赖
一、用JBoss CLI自动修改模块配置
可以通过JBoss CLI的嵌入式模式直接修改系统模块,无需手动编辑文件:
- 编写CLI脚本(例如
fix-sun-module.cli):
embed-server --std-out=echo module modify --name=sun.jdk --add-path=sun/net/www/protocol/http module modify --name=sun.jdk --add-path=sun/net/www/protocol/https stop-embedded-server
- 在WildFly服务器上执行脚本:
$JBOSS_HOME/bin/jboss-cli.sh --file=fix-sun-module.cli
如果服务器处于运行状态,也可以直接连接执行(无需重启):
connect module modify --name=sun.jdk --add-path=sun/net/www/protocol/http module modify --name=sun.jdk --add-path=sun/net/www/protocol/https
二、用Docker在镜像构建时完成配置
如果采用Docker部署WildFly,可将配置逻辑集成到Dockerfile中,确保构建完成的镜像自带正确配置:
方法1:直接用sed修改模块文件(简单高效)
基于官方WildFly镜像,通过sed命令将所需<path>节点插入目标文件:
FROM wildfly:27-jdk11 # 为sun/jdk模块添加http/https路径配置 RUN sed -i '/<\/resources>/i \ <path name="sun/net/www/protocol/http"/>\ <path name="sun/net/www/protocol/https"/>' \ $JBOSS_HOME/modules/system/layers/base/sun/jdk/main/modules.xml CMD ["/opt/jboss/wildfly/bin/standalone.sh", "-b", "0.0.0.0"]
方法2:通过JBoss CLI脚本配置
将之前编写的CLI脚本复制到镜像内,在构建阶段执行配置修改:
FROM wildfly:27-jdk11 # 复制CLI脚本到镜像指定目录 COPY fix-sun-module.cli /opt/jboss/wildfly/ # 执行脚本完成模块配置 RUN /opt/jboss/wildfly/bin/jboss-cli.sh --file=fix-sun-module.cli CMD ["/opt/jboss/wildfly/bin/standalone.sh", "-b", "0.0.0.0"]
注意事项
- 选择与Java 11兼容的WildFly版本(推荐18及以上版本)
- 生产环境需先在测试环境验证配置,再推广上线
- 若使用域模式(Domain Mode),需调整模块文件路径,匹配域控制器的模块存储位置
内容的提问来源于stack exchange,提问作者user2354898
相关产品推荐
相关产品推荐

