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

Spring Boot修改打包为war后Maven构建失败Tomcat启动报错求助

解决方案

  1. 修正配置文件加载路径
    如果你在启动类/任意配置类中使用了@PropertySource("/application.properties")注解,将其修改为@PropertySource("classpath:application.properties")。
    无classpath前缀时,Spring默认会从ServletContext根路径查找配置文件,而打war包后配置文件存放在WEB-INF/classes目录下属于classpath资源,按原写法自然无法找到。

  2. 确认启动类继承规则
    检查你的启动类写法是否符合war包部署要求,标准写法如下:

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

    public static void main(String[] args) {
        SpringApplication.run(GameApplication.class, args);
    }
}
  1. 修复测试环节报错
    测试类如果触发相同错误,可在测试类上添加@TestPropertySource("classpath:application.properties")注解指定配置文件路径,完成第一步的路径修正后测试问题也会同步解决,无需单独注释测试代码。

  2. 强制指定配置加载路径(兜底方案)
    如果以上步骤都无法解决,可在AWS Tomcat的启动参数中添加-Dspring.config.location=classpath:/application.properties,强制指定SpringBoot从类路径读取配置文件。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 15:45:03