技术版本:
SpringBoot2.04
错误场景描述:
项目可以正常启动,但后台接口一被请求就报下面这个错误:
java.lang.NoSuchMethodError: javax.servlet.http.HttpServletRequest.getHttpServletMapping()Ljavax/servlet/http/HttpServletMapping;at org.apache.catalina.core.ApplicationHttpRequest.setRequest(ApplicationHttpRequest.java:690) ~[tomcat-embed-core-9.0.13.jar:9.0.13]at org.apache.catalina.core.ApplicationHttpRequest.(ApplicationHttpRequest.java:114) ~[tomcat-embed-core-9.0.13.jar:9.0.13]at org.apache.catalina.core.ApplicationDispatcher.wrapRequest(ApplicationDispatcher.java:917) ~[tomcat-embed-core-9.0.13.jar:9.0.13]
原因分析:
Tomcat版本问题。
jar包冲突,具体是servlet-api这个jar包。
解决方案:
SringBoot项目使用的是内置Tomcat,如果本地的pom文件中引入了servlet-api依赖,删掉这个依赖。
本地的pom文件中没有导入servlet-api这个依赖,这时候只能是jdk引起的jar包冲突了,可以试着把jdk/jre目录里的servlet-api删除掉。
可以保证本地没有导入servlet-api包,而且是使用了SpringBoot内置的TomCat,可以试着重装JDK。
来源地址:https://blog.csdn.net/qq_47455677/article/details/130736215