maven2报xxxServlet cannot be cast to javax.servlet

由于CacheFilter实现了javax.servlet.Filter接口,Filter是在servlet-api.jar里,因此pom中有

<dependency>

<groupId>javax.servlet</groupId>

<artifactId>servlet-api</artifactId>

<<version>2.4</version>

</</span>dependency>

但是tomcat里已经有servlet-api的包,而且版本可能会有不同,所以就会出现ClassCastException的问题

【解决办法】

servlet-api加入provided,如下:

<dependency>

<groupId>javax.servlet</groupId>

<artifactId>servlet-api</artifactId>

<version>2.4</version>

<scope>provided</scope>

</dependency>

这样修改后,servlet-api.jar就不会在运行tomcat时被import进去了,不会与tomcat自带的servlet-api有冲突

【避免此类问题的建议】

注意pom.xml中关于包的scope的定义,解决此类包冲突产生的问题

时间: 2024-08-07 16:19:07

maven2报xxxServlet cannot be cast to javax.servlet的相关文章

cannot be cast to javax.servlet.Filter 报错, 原因servlet-api.jar冲突

使用maven开发web应用程序, 启动的时候报错: jar not loaded. See Servlet Spec 2.3, section 9.7.2. Offending class: javax/servlet/Servlet.class 然后输出错误: 严重: Exception starting filter encodingFilter java.lang.ClassCastException: org.springframework.web.filter.CharacterEn

Java-maven异常-cannot be cast to javax.servlet.Filter 报错, 原因servlet-api.jar冲突

使用maven开发web应用程序, 启动的时候报错: jar not loaded. See Servlet Spec 2.3, section 9.7.2. Offending class: javax/servlet/Servlet.class 然后输出错误: 严重: Exception starting filter encodingFilter java.lang.ClassCastException: org.springframework.web.filter.CharacterEn

can not be cast to javax.servlet.Filter等问题的解决方法

问题1:can not be cast to javax.servlet.Filter 一位从测试转开发的同事首次更新代码,并编译在本地启动web项目时,报如下错误: Exception starting filter encodingFilterjava.lang.ClassCastException:com.gaochao.platform.web.context.filter.ContextFilter2 can not be cast to javax.servlet.Filter 根据

org.apache.struts.taglib.bean.CookieTei cannot be cast to javax.servlet.jsp.tagext.TagExtraInfo

严重: Servlet.service() for servlet jsp threw exceptionjava.lang.ClassCastException: org.apache.struts.taglib.bean.CookieTei cannot be cast to javax.servlet.jsp.tagext.TagExtraInfo at org.apache.jasper.compiler.TagLibraryInfoImpl.createTagInfo(TagLibra

在maven项目中使用apache cxf中遇到异常 java.lang.ClassCastException: org.springframework.web.filter.CharacterEncodingFilter cannot be cast to javax.servlet.Filter

使用maven虽然很方便,写一个dependency的标签就可以直接从仓库下载对应的jar包,还能处理该jar包的继承依赖关系.但是同时需要你对jar包更加了解,如果依赖关系很复杂,那么很可能会产生jar包冲突,从而使项目报一些莫名其妙的异常. 在用apache cxf的过程中就出现了这样的问题. 1,在项目的pom.xml中加入apache cxf的依赖配置: <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xs

maven构建web项目,cannot be cast to javax.servlet.Servlet

调试Spring MVC时发现如下异常: java.lang.ClassCastException: org.springframework.web.servlet.DispatcherServlet cannot be cast to javax.servlet.Servlet 问题出在servlet-api.jar上,tomcat部署springMVC项目时是不用这个包的,而用maven构建项目时需要,如果不引用该依赖就会不识别  HttpServletRequest等的类 解决方法是在ma

引入工程报包导入异常:import javax.servlet.annotation.WebFilter;

引入工程报包导入异常:import javax.servlet.annotation.WebFilter; (2013-02-21 16:38:00)   分类: java 今天上午导入了一个项目,用的是tomcat7.0的,但是我自己是tomcat6.0的,结果项目导入就很郁闷的发现有的类打上了红叉叉,进去一看,import javax.servlet.annotation.WebFilter 不能引入,找不到类,发现是少导入了servlet-api 包的问题,然后就去网上下载了一个包,可是导

Caused by: java.lang.ClassCastException: org.springframework.web.SpringServletContainerInitializer cannot be cast to javax.servlet.ServletContainerInitializer错误解决办法

严重: Failed to initialize end point associated with ProtocolHandler ["http-bio-8080"] java.net.BindException: Address already in use <null>:8080 at org.apache.tomcat.util.net.JIoEndpoint.bind(JIoEndpoint.java:407) at org.apache.tomcat.util.

【原】tomcat 7 启动报错:java.lang.NoSuchMethodError: javax.servlet.ServletContext.getSessionCookieConfig()Ljavax/servlet/SessionCookieConfig的解决

现象: tomcat 7 启动报错:java.lang.NoSuchMethodError: javax.servlet.ServletContext.getSessionCookieConfig()Ljavax/servlet/SessionCookieConfig 解决: 把tomcat目录下的lib/servlet-api.jar文件拷贝到$JAVA_HOME/jre/lib/ext目录下,再启动tomcat问题解决