java.lang.NoSuchMethodError: javax.servlet.http.HttpServletRequest.getHttpServletMapping()Ljavax/ser

搞了将近两个小时,快要s了,no error!
问题相似性:springboot:v2.2.5.RELEASE
问题出现时间:debug之后发现出现在controller类中返回ModelAndView对象时出现的错误。其他时刻运行正常

话不多说,直接干货

这种原因在于springboot在创建项目是会有内置的Tomcat版本,而且变态的是,基本上springboot版本的不同(即使是小版本的改变),内置的Tomcat版本就会发生改变。
如图:springboot2.2.5内置版本
java.lang.NoSuchMethodError: javax.servlet.http.HttpServletRequest.getHttpServletMapping()Ljavax/ser_第1张图片
我的tomcat版本
在这里插入图片描述

方案一(我的是不行,如果你能解决,那么恭喜!)

在pom.xml文件中添加

<properties>
	<tomcat.version>8.5.46tomcat.version>
properties>

方案二

在查了各种论坛之后,发现主要的环节出现在Tomcat下的servlet-api.jar的版本的冲突,删掉一个即可
java.lang.NoSuchMethodError: javax.servlet.http.HttpServletRequest.getHttpServletMapping()Ljavax/ser_第2张图片
翻到最下面
java.lang.NoSuchMethodError: javax.servlet.http.HttpServletRequest.getHttpServletMapping()Ljavax/ser_第3张图片
对,就是它,干掉!!!
这下重启服务器之后应该就正常了!

如果还不可以,建议自己多查查资料,虽然说错误都大同小异,但是不还是有可能有差别的嘛,推荐可能的解决方案这里
欢迎留言交流!

你可能感兴趣的:(Java,java,tomcat,spring,bug)