You need to enable JavaScript to run this app. Spring Boot 2.2.5部署外部Tomcat时用户接口返回404问题排查
优惠活动
大模型
产品
解决方案
定价
更多

Spring Boot 2.2.5部署外部Tomcat时用户接口返回404问题排查

问题基础信息
  • 项目技术栈:Spring Boot 2.2.5.RELEASE 开发的Web应用,构建产物为War包,部署于公网独立Tomcat服务器
  • 部署状态:同Tomcat下部署的其余War应用运行无异常,当前应用的上下文路径为War包名称tool,即所有接口的访问前置路径为/tool
异常表现
  • 本地运行状态正常:直接启动应用内置Tomcat时,访问http://localhost:8080/api/v1/users可正常完成用户数据的查询、新增、删除操作,业务逻辑响应符合预期
  • 线上部署触发404:携带上下文路径访问http://31.134.12.356:9080/tool/api/v1/users时,用户相关的REST接口统一返回404,响应报文为:

{"timestamp": "2021-01-24T06:45:42.144+00:00","status": 404,"error": "Not Found","message": "","path": "/tool/api/v1/users"}

  • 异常范围固定:应用内除用户相关接口外,其余所有REST接口均可正常访问,不存在全局路由配置失效的问题
根因排查方向
  • 核查Controller注解配置:检查UserController类上的@RestController、类级@RequestMapping注解配置,确认和其他可正常访问的接口类的配置规则一致,避免注解参数拼写错误导致路由映射失败
  • 校验组件扫描范围:核对主启动类@SpringBootApplication的默认扫描路径、自定义@ComponentScan的扫描范围,确认UserController所在包路径在扫描覆盖范围内;同时解压线上部署的War包,检查WEB-INF/classes路径下是否存在UserController对应的编译class文件,排除Maven打包时因资源过滤规则导致类文件遗漏的问题
  • 核对上下文路径配置:检查application.properties中的server.servlet.context-path配置项,确认未出现上下文路径重复叠加的问题——独立Tomcat已为War包分配/tool的上下文路径时,应用内无需再重复配置相同路径,否则实际路由会变为/tool/tool/api/v1/users,与访问路径不匹配触发404
  • 验证Web初始化逻辑:检查自定义SpringBootServletInitializer的实现配置,确认独立Tomcat启动应用时,UserController对应的Bean定义可被正确加载并注册到Spring容器

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.11.07 15:45:04