最近在使用Jenkins实现自动部署,在到tomcat部署springboot项目时成功,但是一直访问不到。
一开始以为是war包出现问题,但在服务器上使用java -jar test.war正常启动。后来查看tomcat日志发现程序并未启动又尝试重启tomcat但仍未发现程序的启动日志,就百思不得其解,后来经过查找资料才得知:
SpringApplicationBuilder用于构建 Spring 应用,是SpringApplication和ApplicationContext实例的构建器,具有便利的流利的 API 和上下文层次结构支持。如果没有在启动类中添加SpringApplicationBuilder,tomcat将无法构建SpringBoot应用
解决方法:
在启动类中需要继承 org.springframework.boot.context.web.SpringBootServletInitializer类并重写configure(SpringApplicationBuilder application)方法如下图所示
@SpringBootApplication
public class WinWayTestApplication extends SpringBootServletInitializer {
public static void main(String[] args) {
SpringApplication.run(WinWayTestApplication.class, args);
System.out.println("(♥◠‿◠)ノ゙ 启动成功 ლ(´ڡ`ლ)゙ \n");
}
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
return builder.sources(WinWayTestApplication.class);
}
}