You need to enable JavaScript to run this app. Spring Boot打war包部署Tomcat访问项目根路径返回404问题咨询
优惠活动
大模型
产品
解决方案
定价
更多

Spring Boot打war包部署Tomcat访问项目根路径返回404问题咨询

Spring Boot WAR包部署Tomcat返回404问题排查方案

1. 校验Tomcat侧部署状态

  • 查看Tomcat运行日志:进入/opt/tomcat/logs目录,查看catalina.out和localhost.日期.log文件,检查是否有Spring应用初始化失败的异常,比如依赖缺失、配置错误、类冲突等问题,优先根据日志报错修复对应问题。
  • 确认war包解压完整性:进入samyar-gameland-1目录,检查WEB-INF/classes下是否存在编译后的业务类文件、WEB-INF/lib下是否包含项目依赖包,确认打包流程没有遗漏文件。
  • 校验版本兼容性:Spring Boot 2.x要求Tomcat版本不低于8.5,Spring Boot 3.x要求Tomcat版本不低于10,版本不匹配会导致应用无法正常初始化。

2. 校验Spring Boot项目配置

  • 确认排除内置Tomcat依赖:pom.xml中需要添加如下配置,避免内置Tomcat和外部Tomcat冲突:
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-tomcat</artifactId>
    <scope>provided</scope>
</dependency>
  • 确认Controller逻辑正常:你当前使用@Controller注解,方法返回字符串hello时,Spring会默认找对应的视图文件:
    • 如果使用模板引擎(如Thymeleaf),请确认resources/templates目录下存在hello.html文件
    • 如果需要直接返回字符串内容,可将@Controller替换为@RestController,或者在what()方法上添加@ResponseBody注解
  • 确认包扫描范围:如果MainController不在SamyarApplication启动类的同级包或者子包下,需要在启动类上添加@ComponentScan(basePackages = "Controller所在的包路径")注解,指定扫描范围才能注册接口。
  • 确认上下文路径配置:检查application.properties/application.yml中是否配置了server.servlet.context-path参数,如果配置了自定义上下文路径,访问地址需要加上该后缀。

3. 访问路径校验

  • 你配置的@GetMapping("/")对应应用根路径,访问时地址末尾需要加斜杠,即访问http://my-server-ip:8080/samyar-gameland-1/,部分Tomcat版本不会自动对无尾斜杠的地址做重定向,会直接返回404。
  • 可新增测试接口排除逻辑干扰,示例如下:
@GetMapping("/test")
@ResponseBody
public String test() {
    return "deploy success";
}

重新打包部署后访问http://my-server-ip:8080/samyar-gameland-1/test,验证应用是否正常启动、接口是否正常注册。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.19 13:45:01