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

Spring MVC 5部署Tomcat 10访问路径返回404资源不可用问题求助

问题根因分析

  • 核心不兼容问题:Tomcat 10及更高版本基于Jakarta EE 9+规范实现,Servlet API的包名已经从javax.servlet.*全部调整为jakarta.servlet.*,但你当前使用的Spring 5.x、javax.servlet-api 4.0.1依赖都是基于旧的javax规范开发的,完全无法在Tomcat 10环境下运行,这是访问提示资源不可用的核心原因。
  • 路径匹配问题:如果Tomcat部署时没有手动修改应用的上下文根,当前项目artifactId为university,默认的访问路径应该是http://localhost:8080/university/,但受上面的兼容问题影响,不管用哪个路径都无法正常访问。

解决方案

方案一(改动最小,优先推荐)

直接将Tomcat版本降级到9.x,Tomcat 9是最后一个支持javax.servlet规范的官方稳定版本,完全适配你当前的所有依赖版本,不需要修改任何代码和pom配置,部署后即可正常访问。

方案二(适配Tomcat 10)

如果必须使用Tomcat 10,需要对项目做如下调整:

  1. 将Spring全家桶版本升级到6.x,Spring从6.0版本才开始支持Jakarta EE规范
  2. 将pom中的javax.servlet-api依赖替换为jakarta.servlet-api,版本选择5.0及以上
  3. 全局替换项目中所有import javax.servlet.*的导入语句为import jakarta.servlet.*
  4. 升级Thymeleaf版本到3.1.x及以上,匹配Spring 6的版本要求

其他检查项

调整版本后可以检查以下配置:

  • 确认Tomcat的应用上下文根配置,如果设置为/就直接访问http://localhost:8080/,如果使用默认值就访问http://localhost:8080/university/
  • 确认/WEB-INF/html/目录下存在index.html文件,文件没有访问权限限制

内容的提问来源于stack exchange,提问作者Parazit-nsk

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 07:06:02