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

在WildFly 26.1.2中部署Spring 5应用时出现启动错误

WildFly 26.1.2部署Spring 5应用报错解决方案

问题根源

核心冲突是Servlet API包名不兼容:

  • WildFly 26.1.2基于Jakarta EE 9规范,使用的是jakarta.servlet.Servlet接口
  • Spring 5依赖的是传统Java EE体系下的javax.servlet.Servlet接口,两者包名完全不同,导致Spring的DispatcherServlet无法被WildFly识别为合法的Servlet实现类,触发UT010009错误。

解决方案

方案1:降级WildFly版本(推荐,适配现有技术栈)

选择WildFly 20.x及以下版本(如WildFly 20.0.1.Final),这类版本基于Java EE 8规范,使用javax.servlet包体系,和Spring 5、JDK 1.8完全兼容,无需修改应用代码即可正常部署。

方案2:升级Spring+JDK版本(适合长期技术迭代)

  • 将Spring框架升级至6.x版本,Spring 6开始全面支持Jakarta EE 9+规范,适配jakarta.servlet接口
  • 同步将JDK版本升级至17及以上(Spring 6最低要求JDK 17),此方案需要调整项目依赖和运行环境,但能适配新版本WildFly的生态。

方案3:排除WildFly自带Servlet API(不推荐,风险高)

在应用的WEB-INF/jboss-deployment-structure.xml中配置排除WildFly自带的Jakarta Servlet API,同时在项目中打包javax.servlet相关依赖。但这种方式极易引发类加载冲突,仅建议用于临时测试,不适合生产环境。示例配置:

<jboss-deployment-structure>
    <deployment>
        <exclusions>
            <module name="jakarta.servlet.api" />
        </exclusions>
    </deployment>
</jboss-deployment-structure>

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 19:45:33