解决Maven项目下添加HttpServletRequest 或 HttpServletResponse需引用的依赖包报错

今天在开发中遇到了一个问题,项目中需要HttpServletRequest  和 HttpServletResponse 但是我项目是用maven启动的,需要手动导入servlet-api.jar包

      我开始是这样导入的

 
	javax.servlet 
	javax.servlet-api 
	3.1.0 
 
但是项目中报了莫名其妙的错误

Caused by: java.lang.LinkageError: loader constraint violation: loader (instance of org/apache/catalina/loader/WebappClassLoader) previously initiated loading for a different type with name "javax/servlet/ServletContext"

查到的原因以及解决办法

产生的原因是:tomcat中也有servlet-api包,这样,发生了冲突

解决方法:添加provided,因为provided表明该包只在编译和测试的时候用,所以,当启动tomcat的时候,就不会冲突了,完整依赖如下:

 
   javax.servlet 
   servlet-api 
   2.5 
   provided 
 

很坑爹,开始报错的时候不知道是什么原因,以为代码有问题,之后才发现是导包的问题,浪费了一早上。

你可能感兴趣的:(学习笔记)