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  位置与启动类的位置一致

Springboot 打包成war 部署到tomcat服务器上

public class SpringBootStartApplication extends SpringBootServletInitializer {

    @Override
    protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
        // 注意这里要指向原先用main方法执行的Application启动类
        return builder.sources(DemoApplication.class);
    }

}

 3.  打包部署

在IDEA右侧Maven栏双击package等待Build Success即可。

Springboot 打包成war 部署到tomcat服务器上

在项目目录下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下