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

Spring Boot控制台无Logo显示,如何在Tomcat 8.5上启动微服务?

解决Spring Boot应用部署到Tomcat 8.5无法启动的问题

从你的描述和代码来看,问题大概率出在外部Tomcat部署的配置细节上——毕竟Spring Boot默认用内嵌Tomcat,部署到外部容器需要做特定调整。我帮你梳理几个关键的修复步骤:

1. 调整POM.xml的打包类型与依赖

首先,你的项目当前默认打包成jar,但部署到外部Tomcat需要打包为war包,同时要排除内置Tomcat避免冲突:

修改打包类型

在POM.xml的groupId/artifactId/version下方添加:

<packaging>war</packaging>

排除内置Tomcat依赖

修改spring-boot-starter-web依赖,添加排除规则避免与外部Tomcat冲突:

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
    <!-- 排除内置Tomcat -->
    <exclusions>
        <exclusion>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-tomcat</artifactId>
        </exclusion>
    </exclusions>
</dependency>
<!-- 为编译测试提供Tomcat API依赖 -->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-tomcat</artifactId>
    <scope>provided</scope>
</dependency>

优化Spring Boot Maven插件配置

确保插件能正确构建可部署到外部Tomcat的war包:

<plugin>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-maven-plugin</artifactId>
    <configuration>
        <!-- 指定主类入口 -->
        <mainClass>com.logituit.sitehawk.ShUsersApplication</mainClass>
    </configuration>
    <executions>
        <execution>
            <goals>
                <goal>repackage</goal>
            </goals>
        </execution>
    </executions>
</plugin>

2. 完善主应用类的配置

你已经继承了SpringBootServletInitializer,但需要重写configure方法,让外部Tomcat能识别并启动Spring Boot应用:

修改ShUsersApplication类:

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.boot.web.servlet.support.SpringBootServletInitializer;

@SpringBootApplication
public class ShUsersApplication extends SpringBootServletInitializer {
    public static void main(String[] args) {
        SpringApplication.run(ShUsersApplication.class, args);
    }

    // 重写configure方法,指定Spring Boot应用入口
    @Override
    protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
        return application.sources(ShUsersApplication.class);
    }
}

3. 重新打包并部署

执行Maven命令清理并构建war包:

mvn clean package -DskipTests

将target目录下生成的SH_Users-0.0.1-SNAPSHOT.war复制到Tomcat的webapps目录下,启动Tomcat。

4. 查看正确的日志位置

注意:部署到外部Tomcat后,Spring Boot的启动日志会输出到Tomcat的logs目录下(比如catalina.out或localhost.log),而不是IDE的控制台。你可以去这里查看是否有Spring Boot的Logo和启动信息,同时排查可能的报错。

额外检查点

  • 确认Tomcat 8.5的JAVA_HOME指向正确的JDK 8(你的项目指定了java.version=1.8);
  • 外部Tomcat部署后,application.properties中的server.port会失效,应用访问端口为Tomcat默认的8080,访问路径为war包名称(比如http://localhost:8080/SH_Users-0.0.1-SNAPSHOT/sitehawk/save)。

按照这些步骤调整后,应该就能看到Spring Boot的启动日志,应用也能正常运行了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.14 06:58:13