有两个可能性的
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>
<!-- 去除内嵌tomcat -->
<exclusions>
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
</exclusion>
</exclusions>
</dependency>
<!--添加servlet的依赖-->
<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 中发布两次的问题 就这三个原因了