1.将pom.xml中的打包方式jar修改为war
<packaging>war</packaging>
2.在pom.xml中添加依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
<scope>provided</scope>
</dependency>
3.修改src/main/java下的application启动项
public class XXXXApplication extends SpringBootServletInitializer implements WebApplicationInitializer {
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder application){
return application.sources(XXXXApplication.class);
}
public static void main(String[] args)
{
SpringApplication.run(XXXXApplication.class, args);
}
}
4.保存后,重新build,然后开始打包。
或者 mvn命令打包
5.最后把项目下的target文件中的.war后缀的打包文件扔到tomcat下wabapp下,运行tomcat。http://localhost:端口号/项目名/
问题:
1.Caused by: java.lang.NoClassDefFoundError: javax/el/ELManager
运行后报错,项目无法正常启动(本地能正常运行)。原因是tomcat的el-api.jar与编译器的el-api.jar包有差异导致的。
解决办法:将编译器下的el-api.jar包(C:\Program Files\JetBrains\IntelliJ IDEA 2018.1\lib\rt\jasper2.1),
分别放到服务器端的Tomcat的lib包下(apache-tomcat-7.0.77/lib),
和jdk/lib/ext包下("C:\Program Files\Java\jdk1.8.0_73\jre\lib\ext\")。