问题描述:
在A电脑上明明是好用的,但是git clone到B电脑上突然不好用了.
产生原因:
- pom.xml包中有下面的依赖,由于高版本的SpringBoot内嵌的是Servlet3.1,所以会造成冲突.
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
<version>2.5</version>
</dependency>
- pom.xml中并没有上面的依赖内容
我这次碰到的就是这个问题,但是原因是一样的!!!
经过一番分析,本机之前开发别的项目时,可能不知不觉中引入过javax依赖,于是,到自己的maven
所对应的仓库目录中查看一番,果然是Servlet2.5版本.
我们可以将整个javax
目录删除,然后重新用maven引入依赖即可.
- SpringCloud Gateway与web包冲突
如果你的pom.xml中,同时存在SpringCloud Gateway
和web
包那么会有此问题.
SpringCloud Gateway是基于netty
的,而web
包中依赖的是tomcat
解决方案:
可以在spring-boot-starter-web
相关依赖中添加<scope>provided</scope>
,表示只在编译和测试时生效,并不会被打包.
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-gateway</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<scope>provided</scope>
</dependency>