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

Spring Boot应用在Tomcat 10部署成功访问报404问题如何排查

Tomcat 10部署Spring Boot应用返回404问题解决指南

核心根因

Tomcat 10.x基于Jakarta EE 9规范实现,所有原Java EE的javax.*开头的API包名全部重命名为jakarta.*。可在Tomcat 9上正常运行的Spring Boot应用(绝大多数为2.x及更早版本)默认依赖javax.servlet等Java EE规范包,和Tomcat 10的API规范不兼容:应用中的Servlet、Filter、Spring MVC DispatcherServlet等核心请求处理组件无法被Tomcat 10识别加载,所以Tomcat仅会标记应用目录部署成功,不会抛出错误,但实际没有任何请求处理逻辑,所有访问都会返回404。

排查&解决步骤

  • 确认Spring Boot版本兼容性
    只有Spring Boot 3.x及以上版本原生支持Jakarta EE 9+规范,如果你当前使用的是Spring Boot 2.x及更早版本,优先选择降级Tomcat到9.x系列,无需修改任何业务代码即可正常运行。
  • 如需保留Tomcat 10,按以下方案适配:
    1. 升级Spring Boot到3.x以上版本,依赖会自动替换为jakarta.*规范版本,同时检查业务代码中所有直接导入javax.servlet.*、javax.annotation.*等Java EE包的代码,全部替换为对应的jakarta.*包路径。
    2. 若不想升级Spring Boot大版本,可以使用Apache官方提供的迁移工具org.apache.tomcat:tomcat-jakartaee-migration,在WAR打包阶段自动替换包内所有javax.*引用为jakarta.*,也可解决兼容性问题。
  • 适配后验证
    重新打包WAR包部署到Tomcat 10,查看Catalina日志是否出现Spring Boot启动Banner以及DispatcherServlet initialized相关日志,确认核心组件注册成功后再访问应用路径即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 06:45:03