SpringBoot项目用tomcat启动,没有报错,控制台只输出org.apache.catalina.startup.catalina.start server startup in xxxms

背景:最近在使用SpringBoot项目过程中,代码写好测试完,部署到服务器上启动使用外置的tomcat启动,控制台只输出org.apache.catalina.startup.catalina.start server startup in xxxms,就没有后续了,访问服务的接口,也是失败,说明服务没有启动起来,但是就是访问不同,查了很多资料,最后解决方案如下:

       报错截图:

解决方案:

1、确认pom.xml的project节点下有标签<packaging>war</packaging>,通常配置在artifactId及version标签下。

外置tomcat启动项目的pom中必须有依赖:

<dependency>

<groupId>org.springframework.boot</groupId>

<artifactId>spring-boot-starter-tomcat</artifactId>

<scope>provided</scope>

</dependency>

2、若新建项目时选择的Packaging是war,将会在项目根目录生成ServletInitializer类。

3、若项目中没有ServletInitializer类,则新建ServletInitializer类,继承SpringBootServletInitializer并重写configure方法,亦可直接在SpringbootdemoApplication类上继承SpringBootServletInitializer。建议新建ServletInitializer类,这样目录结构很清晰,一看目录结构就清楚该项目是用tomcat启动的。

import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.boot.web.support.SpringBootServletInitializer;
import org.springframework.stereotype.Component;

@Component
public class ServletInitializer extends SpringBootServletInitializer {

@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
return application.sources(SpringbootdemoApplication.class);
   }
}

SpringbootdemoApplication.class是启动类,在不同的项目,这里需要改下。

至于SpringBootServletInitializer的作用,可以参考这篇文章:

https://blog.csdn.net/qq_28289405/article/details/81279742

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值