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

Spring Boot(v2.7.8)启动失败:exit code1及SLF4J警告求助

Spring Boot 2.7.8启动失败(Exit Code 1)排查方案

一、先明确:SLF4J警告不直接导致进程终止,但需优先修复

你看到的SLF4J警告是因为缺少日志绑定实现,虽然不会直接让进程退出,但会导致日志输出异常,掩盖真实报错信息,需先解决:

  • 若使用Maven,确保排除Spring Boot默认的logback依赖,引入log4j2 starter:
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
        <exclusions>
            <exclusion>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-logging</artifactId>
            </exclusion>
        </exclusions>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-log4j2</artifactId>
    </dependency>
    
  • Gradle用户对应排除logback,引入log4j2依赖即可。

二、核心问题:Tomcat启动后立刻停止,Exit Code 1的排查重点

1. 数据源配置错误(最可能的原因)

你的application.properties中,数据库用户名、密码、schema均为空字符串,这会导致Spring Boot初始化数据源时直接失败,触发上下文加载异常,进而终止Tomcat:

  • 修正配置为实际的数据库信息:
    spring.datasource.username=你的数据库用户名
    spring.datasource.password=你的数据库密码
    spring.jpa.properties.hibernate.default_schema=你的数据库schema
    
  • 同时确认PostgreSQL服务正常运行,端口开放,应用可正常访问数据库。

2. 日志目录权限问题

你的log4j2.xml配置了写入log/app.log,如果应用运行用户没有权限创建log目录或写入文件,会导致日志初始化失败,触发启动异常:

  • 手动在应用根目录创建log目录,或修改log4j2.xml中的日志路径为有权限的绝对路径(比如/var/log/app/app.log)。

3. 提升日志级别,查看完整报错信息

当前日志级别为INFO,很多关键异常堆栈会被隐藏,调整为DEBUG级别获取完整启动日志:

  • 修改application.properties:
    logging.level.root=DEBUG
    
  • 重新启动应用,查看Exit Code 1之前的异常信息,这是定位根本原因的关键。

4. 依赖兼容性检查

  • 确认PostgreSQL驱动版本与Spring Boot 2.7.8兼容(推荐使用42.3.8版本);
  • 检查是否存在Tomcat相关依赖冲突,可通过mvn dependency:tree(Maven)或gradle dependencies(Gradle)查看依赖树,排除冲突依赖。

三、后续操作

按上述步骤逐一排查,优先修复数据源配置和日志问题,查看DEBUG日志中的异常堆栈,即可定位具体失败点。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.12 07:55:57