Wildfly 26.1.2部署Web应用时出现Servlet加载异常求助
问题排查与解决步骤
1. 确认类的存在与路径
- 检查编译后的class文件:确认
it.myApp.web.servlet.myAppServlet对应的.class文件是否在部署包(war/ear)的WEB-INF/classes目录下,路径、大小写必须完全匹配(注意Java类名规范为大驼峰,若实际类是MyAppServlet,配置里写myAppServlet会直接报错) - 若类来自依赖jar:确认该jar已正确打包到
WEB-INF/lib目录中
2. 核对web.xml配置正确性
检查Servlet的class属性值是否与类的全限定名完全一致,示例正确配置:
<servlet> <servlet-name>MyAppServlet</servlet-name> <servlet-class>it.myApp.web.servlet.MyAppServlet</servlet-class> </servlet>
重点排查包名、类名的拼写和大小写错误
3. 处理WildFly类加载冲突
WildFly 26.1.2默认集成Jakarta EE 8,无需手动添加JAXRS库,建议:
- 移除手动添加的JAXRS依赖,改用容器提供的API,Maven中可设置依赖
scope为provided:
<dependency> <groupId>jakarta.ws.rs</groupId> <artifactId>jakarta.ws.rs-api</artifactId> <version>2.1.6</version> <scope>provided</scope> </dependency>
- 若存在
jboss-deployment-structure.xml,检查是否有错误的类加载配置(如排除必要模块、错误引入外部模块)
4. 清理与重新部署
- 清理项目编译目录(如Maven的
target、Gradle的build),重新编译打包,确保所有类被正确编译并包含在部署包中 - 删除WildFly
standalone/deployments目录下的旧部署文件及临时缓存,避免残留文件干扰
补充说明
你感知到的JAXRS相关异常大概率是类加载失败引发的连锁错误,优先解决Servlet类找不到的核心问题,再排查其他JAXRS配置问题。
内容的提问来源于stack exchange,提问作者robby
相关产品推荐
相关产品推荐

