1.将打包方式改为war
<packaging>war</packaging>
2.将springboot的内嵌的tomcat移除掉
<!--tomcat支持jsp解析-->
<dependency>
<groupId>org.apache.tomcat.embed</groupId>
<artifactId>tomcat-embed-jasper</artifactId>
<!--移除内嵌的tomcat-->
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
<!--移除内嵌的tomcat-->
<scope>provided</scope>
</dependency>
3.入口类继承SpringBootServletInitializer 然后实现configure方法,将入口类类型传递给这个方法
public class App extends SpringBootServletInitializer {
public static void main(String[] args) {
SpringApplication.run(App.class,args);
}
@Override
public SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
return builder.sources(App.class);
}
}
4.在外部服务器配置war包并开启服务器,注意:将springboot项目打成war包会导致application配置文件中的端口以及项目名失效,访问的时候端口号以外部tomcat服务器为准,项目名以war包名为准。