有两个可能性的
1.springboot 的内置tomcat没有去掉,导致springboot 和tomcat 分别启动了1次
2.完全是tomcat 启动了两次
第一个问题:我们在springboot pom.xml中
<packaging>war
</packaging>
<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>
<dependency>
<groupId>javax.servlet
</groupId>
<artifactId>javax.servlet-api
</artifactId>
<version>3.1.0
</version>
<scope>provided
</scope>
</dependency>
第二个问题:在tomcat 的server.xml中 把host的appBase 换为“”,然后启动就好了
或者你在tomcat内部新建一个webroot 文件夹 然后把appBase换成webroot 也可以
就是host 和context 分别启动了两次
当时看到这的时候以为肯定是这两个问题,一定能解决,结果我们改完之后,测试还是不好使 然后经过测试
发现是springboot 启动类 @SpringBootApplication的类 把 extends 的去掉就好了
具体原因就不在这里说明了,但是基本上 springboot 在 tomcat 中发布两次的问题 就这三个原因了