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

Wildfly 27(Jakarta EE10)迁移启动失败:找不到javax.servlet.Filter

排查Wildfly 27(Jakarta EE 10)启动NoClassDefFoundError问题

核心问题分析

Wildfly 27基于Jakarta EE 10,容器已完全移除javax.*命名空间的API,仅提供jakarta.*版本。出现javax/servlet/Filter找不到的错误,说明项目中仍有代码或依赖在引用旧的javax类——哪怕你已经替换了自有代码,也可能存在隐藏的残留问题。

具体排查步骤

1. 修正web.xml的schema版本

你提到更新到Jakarta EE 6.0 schema,这是错误的。Jakarta EE 10对应的web.xml schema应为4.0版本(对应Servlet 6.0),旧schema会导致容器以兼容模式处理,仍尝试加载javax类。正确的web.xml头如下:

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="https://jakarta.ee/xml/ns/jakartaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="https://jakarta.ee/xml/ns/jakartaee https://jakarta.ee/xml/ns/jakartaee/web-app_4_0.xsd"
         version="4.0">

2. 排查依赖中的javax残留

  • 运行mvn dependency:tree,搜索所有包含javax.servlet、javax.*的依赖,确认是否有第三方库仍在使用旧API。
  • 对于必须保留的第三方依赖,检查是否有对应的Jakarta兼容版本(通常groupId从javax.*改为jakarta.*,artifactId可能不变或调整)。
  • 确保所有Servlet/Filter相关依赖的scope设为provided,因为Wildfly 27已内置Jakarta EE 10的API,无需打包到war中。示例:
<dependency>
    <groupId>jakarta.servlet</groupId>
    <artifactId>jakarta.servlet-api</artifactId>
    <version>6.0.0</version>
    <scope>provided</scope>
</dependency>

3. 检查编译后的类文件

  • 解压war包,找到com.oberon.esg.server.SessionTimeoutCookieFilter类,用反编译工具(如JD-GUI)查看其import语句,确认是否仍引用javax.servlet.Filter而非jakarta.servlet.Filter。
  • 若存在旧import,说明代码替换不彻底(比如漏改文件、IDE缓存未清理),需重新检查所有Filter、Servlet、Listener类的import。

4. 检查容器配置与模块

  • 若项目使用自定义Wildfly模块,检查是否仍依赖javax.servlet.api模块,需替换为jakarta.servlet.api。
  • 若存在jboss-deployment-structure.xml,确保没有引入旧的javax相关模块。

5. 清理构建缓存

  • 执行mvn clean install,彻底清理旧的编译产物,避免残留的javax类文件被打包到war中。
  • 清理IDE缓存(如IntelliJ的File -> Invalidate Caches/Restart),确保编译时使用最新的依赖和代码。

额外注意点

  • Jakarta EE 10不仅是命名空间替换,部分API有行为变更,替换后若仍有问题,需检查Filter/Servlet的初始化逻辑是否符合Servlet 6.0规范。
  • 若使用Spring等框架,需确保框架版本支持Jakarta EE 10(如Spring Boot 3.x、Spring Framework 6.x),旧版本框架会依赖javax API导致冲突。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.02 05:57:33