您的位置:首页 > 理论基础 > 计算机网络

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

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

      我开始是这样导入的

<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.1.0</version>
</dependency>
但是项目中报了莫名其妙的错误
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包,这样,发生了冲突

解决方法:添加<scope>provided</scope>,因为provided表明该包只在编译和测试的时候用,所以,当启动tomcat的时候,就不会冲突了,完整依赖如下:
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
<version>2.5</version>
<scope>provided</scope>
</dependency>

很坑爹,开始报错的时候不知道是什么原因,以为代码有问题,之后才发现是导包的问题,浪费了一早上。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息