You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

JBOSS EAP7.1部署war包报jdk.unsupported模块缺失错误如何解决?

报错信息

{"WFLYCTL0080: 服务失败" => {"jboss.module.service."deployment.telemedicina.war".main" => "WFLYSRV0179: 加载模块出错: deployment.telemedicina.war
Caused by: org.jboss.modules.ModuleNotFoundException: jdk.unsupported"}}

问题根因

该错误仅出现在JBOSS EAP 7.1版本的核心原因是:EAP 7.1的类加载机制默认没有将jdk.unsupported这个JDK内置模块纳入应用的隐式依赖列表,而你的telemedicina.war应用或其依赖的第三方组件用到了该模块下的API(如sun.misc.Unsafe等非标准JDK接口)。EAP 7.2及后续版本默认已经添加了该模块的隐式依赖,因此不会触发报错。

排查步骤
  • 确认应用及依赖的第三方Jar是否存在对jdk.unsupported模块的依赖,可通过JDK自带的jdeps工具扫描:
    jdeps --jdk-internals telemedicina.war/WEB-INF/lib/*.jar
    
    扫描结果中如果出现JDK internal API (jdk.unsupported)的提示,即可确认依赖关系。
  • 核实当前运行的JDK版本是否为EAP 7.1兼容的JDK 8或JDK 11,排除JDK版本不匹配导致的模块缺失问题。
  • 检查EAP 7.1安装目录下modules/system/layers/base/sun/jdk/main/module.xml配置,确认默认未引入jdk.unsupported模块。
解决方案

方案1:单应用配置(推荐)

该方案仅修改当前应用的依赖配置,不会影响服务器上运行的其他服务。
在war包的WEB-INF目录下新建jboss-deployment-structure.xml文件,内容如下:

<jboss-deployment-structure>
    <deployment>
        <dependencies>
            <module name="jdk.unsupported" export="true"/>
        </dependencies>
    </deployment>
</jboss-deployment-structure>

重新打包war包后重新部署即可。

方案2:全局配置

如果服务器上有多个应用都依赖jdk.unsupported模块,可修改全局配置一次性生效:

  1. 打开EAP 7.1安装目录下的配置文件:$JBOSS_HOME/modules/system/layers/base/sun/jdk/main/module.xml
  2. 在文件的<dependencies>节点下新增如下配置:
    <module name="jdk.unsupported" export="true"/>
    
  3. 重启JBOSS EAP服务即可。

内容的提问来源于stack exchange,提问作者simon pezo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.23 23:06:04