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

Spring Boot部署至外部Tomcat v8.5后出现404错误求助

Spring Boot部署外部Tomcat8.5 404问题排查方案

一、调整打包方式与依赖配置

  1. 确保pom.xml中打包方式设置为war:
<packaging>war</packaging>
  1. 排除内嵌Tomcat依赖,并添加工具类依赖(避免与外部Tomcat冲突):
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
    <exclusions>
        <exclusion>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-tomcat</artifactId>
        </exclusion>
    </exclusions>
</dependency>
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-tomcat</artifactId>
    <scope>provided</scope>
</dependency>

二、修改启动类继承SpringBootServletInitializer

外部Tomcat部署需要启动类继承该类并重写配置方法,让容器能正确识别Spring Boot应用:

@SpringBootApplication
public class DevhubApplication extends SpringBootServletInitializer {
    @Override
    protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
        return application.sources(DevhubApplication.class);
    }

    public static void main(String[] args) {
        SpringApplication.run(DevhubApplication.class, args);
    }
}

三、确认访问路径与WAR包名称匹配

外部Tomcat的访问路径规则为:http://localhost:8080/[WAR包名称]/[Controller映射路径]

  • 如果你的WAR包名为devhub.war,完整访问路径应为http://localhost:8080/devhub/home
  • 若想直接通过/home访问,需将WAR包重命名为ROOT.war,Tomcat会将其作为根应用处理

四、解析启动红色日志

日志红色多为警告或错误,重点排查:

  • 类加载失败、依赖缺失的报错信息
  • ServletContext初始化失败的提示
  • Controller映射未注册的日志(可开启debug级别日志查看映射详情)

五、静态资源与前端视图检查

若为前端页面404,需确认:

  • 静态资源(HTML、JS、CSS等)是否放在src/main/resources/static或src/main/resources/public目录下
  • Controller返回的视图名称是否与实际文件匹配,模板引擎(如Thymeleaf)配置是否正常

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.07 11:05:24