错误场景:
在用 Spring 的单元测试进行模拟请求时遇到下面的错误:
java.lang.NoSuchMethodError: javax.servlet.http.HttpServletRequest.getAsyncContext()Ljavax/servlet/AsyncContext;
错误原因:
jar 包版本冲突
如图,pom 文件中,引入了 jstl 的依赖和 servlet-api 的依赖。因为 jstl 依赖于 servlet-api(2.5),而我们又引入了 servlet-api(3.1)。由此产生了冲突,故而报错。
解决办法:
方法一:更换新版本的 jstl。最稳妥的办法
方法二:将 servlet-api(3.1) 的依赖移到 jstl 依赖的上面。
注:方法二只能暂时解决当前报错,以后是否会引发其他错误还未可知,建议采用方法一。