Springboot 打包成war 部署到tomcat服务器上
1. 首先修改pom文件
第一处修改:设置打包方式 <packaging>war</packaging>
第二处修改:由于springboot内置tomcat,需要取消内置tomcat。
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> <exclusions> <exclusion> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-tomcat</artifactId> </exclusion> </exclusions> </dependency>
第三处修改:增加servlet-api的依赖
<dependency> <groupId>javax.servlet</groupId> <artifactId>javax.servlet-api</artifactId> <version>3.1.0</version> <scope>provided</scope> </dependency>
2. 在springboot项目中增加一个类
SpringApplicationBuilder 位置与启动类的位置一致
public class SpringBootStartApplication extends SpringBootServletInitializer {
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
// 注意这里要指向原先用main方法执行的Application启动类
return builder.sources(DemoApplication.class);
}
}
3. 打包部署
在IDEA右侧Maven栏双击package等待Build Success即可。
在项目目录下target文件夹下找到对应的jar包 放到tomcat文件夹下即可运行
注意:
tomcat 需要使用 tomcat8 进行运行,如果你用tomcat8以下运行的话:会报错
报错内容:Error creating bean with name 'defaultValidator' defined in class path resource [org/springframework.......
如果还是报错,需要将tomcat lib文件夹的el-api.jar 拷贝到 jre 下lib/ext下