SpringBoot服务无法启动,内嵌Tomcat启动失败

问题描述:
在A电脑上明明是好用的,但是git clone到B电脑上突然不好用了.

产生原因:

  1. pom.xml包中有下面的依赖,由于高版本的SpringBoot内嵌的是Servlet3.1,所以会造成冲突.
<dependency>
   <groupId>javax.servletgroupId>
   <artifactId>servlet-apiartifactId>
   <version>2.5version>
dependency>
  1. pom.xml中并没有上面的依赖内容

我这次碰到的就是这个问题,但是原因是一样的!!!

经过一番分析,本机之前开发别的项目时,可能不知不觉中引入过javax依赖,于是,到自己的maven

所对应的仓库目录中查看一番,果然是Servlet2.5版本.

SpringBoot服务无法启动,内嵌Tomcat启动失败_第1张图片
我们可以将整个javax目录删除,然后重新用maven引入依赖即可.

  1. SpringCloud Gateway与web包冲突

如果你的pom.xml中,同时存在SpringCloud Gatewayweb包那么会有此问题.

SpringCloud Gateway是基于netty的,而web包中依赖的是tomcat
SpringBoot服务无法启动,内嵌Tomcat启动失败_第2张图片
解决方案:
可以在spring-boot-starter-web相关依赖中添加provided,表示只在编译和测试时生效,并不会被打包.

<dependency>
    <groupId>org.springframework.cloudgroupId>
    <artifactId>spring-cloud-starter-gatewayartifactId>
dependency>
<dependency>
    <groupId>org.springframework.bootgroupId>
    <artifactId>spring-boot-starter-webartifactId>
	<scope>providedscope>
dependency>

你可能感兴趣的:(SpringBoot)