springboot war包在tomcat中运行

将springboot微服务部署在tomcat-8.5.23版本上。以下为修改配置信息。

1、引包pom.xml

<dependencies>
    <!--修改包引用不包含tomcat-->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
        <!--网上有说需要排除spring-boot-starter-tomcat,但我在tomcat-8.5.23下不排除也可以-->
        <!--<exclusions>-->
        <!--    <exclusion>-->
        <!--        <groupId>org.springframework.boot</groupId>-->
        <!--        <artifactId>spring-boot-starter-tomcat</artifactId>-->
        <!--    </exclusion>-->
        <!--</exclusions>-->
    </dependency>
    <!--war包部署-->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-tomcat</artifactId>
        <!--<version>1.5.1.RELEASE</version>-->
        <!--<scope>provided</scope>-->
    </dependency>
</dependencies>
    
<!--修改打包设置-->
<build>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
        </plugin>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-war-plugin</artifactId>
            <version>2.1.1</version>
            <configuration>
                <encoding>${project.build.sourceEncoding}</encoding>
                <skipTests>true</skipTests>
                <!-- 打成war包时名子 -->
                <warName>ROOT</warName>
                <!-- mave时启用的main路径(因为其他包里面测试时也加了main函数) -->
                <mainClass>${start-class}</mainClass>
                <skip>true</skip><!-- 跳过测试 -->
                <testFailureIgnore>true</testFailureIgnore>
            </configuration>
        </plugin>
    </plugins>
</build>

2、修改启动类

package com.pengei;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.boot.web.support.SpringBootServletInitializer;
import org.springframework.cache.annotation.EnableCaching;

# 第一步:extends SpringBootServletInitializer
@SpringBootApplication
@EnableCaching
public class MyAPIApplication extends SpringBootServletInitializer {
    # 第二步override configure方法
    @Override
    protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
        return application.sources(MyAPIApplication.class);
    }

	public static void main(String[] args) throws Exception {
		SpringApplication.run(MyAPIApplication.class, args);
	}
}

3、增加/webapp/WEB-INF/web.xml,内容如下


contextConfigLocation
com.pengei.MyAPIApplication


appServlet
org.springframework.web.servlet.DispatcherServlet

contextAttribute
org.springframework.web.context.WebApplicationContext.ROOT

1


appServlet
/

posted @ 2017-11-02 16:28  班然  阅读(3187)  评论(0)    收藏  举报