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

Spring Boot项目WAR部署外部Tomcat静态文件访问404问题排查

Spring Boot 2.7.8 WAR包部署Tomcat 8.5.47报404的解决记录

问题场景

作为Spring/Spring Boot新手,我尝试将带静态文件的Spring Boot 2.7.8项目打包为WAR部署到现有Tomcat 8.5.47,操作步骤如下:

  • 在pom.xml中设置packaging为war,添加spring-boot-starter-tomcat依赖并将其scope设为provided,关键配置如下:
<packaging>war</packaging>
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-tomcat</artifactId>
    <scope>provided</scope>
</dependency>
  • 启动类继承SpringBootServletInitializer
  • 将内容为"Hello World"的index.html放在src/main/resources/static目录
  • 执行mvn clean package完成打包,检查WAR包发现index.html位于WEB-INF/classes/static路径下

但部署到Tomcat后,访问http://localhost/demo-01-0.0.1-SNAPSHOT时出现404错误。

问题排查与根源

经过排查发现,问题出在JDK版本不兼容:

  • 部署用的Tomcat 8.5.47运行在Java 8环境
  • 项目pom.xml中指定了<java.version>17</java.version>,导致项目编译时使用Java 17的字节码版本,与Tomcat的Java 8环境不兼容,最终引发404。

解决方法

移除pom.xml中的<java.version>17</java.version>配置,重新执行mvn clean package打包后部署到Tomcat,再次访问即可正常加载静态页面。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.02 19:51:00