Springboot Unable to start ServletWebServerApplicationContext due to missing ServletWebServerFactory

报错:Unable to start ServletWebServerApplicationContext due to missing ServletWebServerFactory

在网上搜了各种方法都没有得到解决,先大概列一下有以下几种说法:

1.没有加@SpringBootApplication注解,我加了,所以不是这个原因

2.没有加@EnableAutoConfiguration注解,加了@SpringBootApplication注解就不需要再加这个注解了,所以也不是这个原因

一步一步来看:

首先,说我missing ServletWebServerFactory,我点进去,有呀,看着也没什么问题,一切正常;

然后我想到是不是因为默认使用的嵌入式tomcat无法启动,因为我之前把它exclude了

至于为什么exclude掉呢,是因为我程序中有一个自己写的类HttpServletRequestWrapper继承了HttpServletRequst

应该继承的是javax.servlet:servlet-api:2.4这个包里的HttpServletRequst,但是由于tomcat-embed-core这个包中也有这个类,同名,当两个Jar包中有同名的类如何选取想要的呢,把想要的包放在前面

 我把依赖的顺序调整了一下,javax.servlet:servlet-api:2.4放在tomcat-embed-core的前面,但是还是有问题,提示如下:

从提示中我们可以看出这两个依赖中有重合的地方,且当我把顺序调整以后,如果有同名类,现在先加载的会是servlet-api中的,但是还是不行,必须只能有一个

把servlet-api去掉就好了

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值