`

maven2报cannot be cast to javax.servlet.Filter错误解决

阅读更多

在maven2中使用tomcat plugin的时,报cannot be cast to javax.servlet.Filter的问题

在maven2中使用tomcat plugin启动web应用,在pom.xml中加入以下配置信息:

  1. <project>  
  2. ...   
  3. <build>  
  4. <!-- To define the plugin version in your parent POM -->  
  5. <pluginManagement>  
  6. <plugins>  
  7. <plugin>  
  8. <groupId>org.codehaus.mojo</groupId>  
  9. <artifactId>tomcat-maven-plugin</artifactId>  
  10. <version>1.0-beta-1</version>  
  11. </plugin>  
  12. ...   
  13. </plugins>  
  14. </pluginManagement>  
  15. <!-- To use the plugin goals in your POM or parent POM -->  
  16. <plugins>  
  17. <plugin>  
  18. <groupId>org.codehaus.mojo</groupId>  
  19. <artifactId>tomcat-maven-plugin</artifactId>  
  20. <version>1.0-beta-1</version>  
  21. </plugin>  
  22. ...   
  23. </plugins>  
  24. </build>  
  25. ...   
  26. </project>  

运行mvn tomcat:run后,tomcat报错误如下:

  1. java.lang.ClassCastException: common.filter.CacheFilter cannot be cast to javax.servlet.Servlet   


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

  1. <dependency>  
  2.     <groupId>javax.servlet</groupId>  
  3.     <artifactId>servlet-api</artifactId>  
  4.     <version>2.4</version>  
  5. </dependency>  

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


【解决办法】
servlet-api加入<scope>provided</scope>,如下:

  1. <dependency>  
  2.             <groupId>javax.servlet</groupId>  
  3.             <artifactId>servlet-api</artifactId>  
  4.             <version>2.4</version>  
  5.             <scope>provided</scope>  
  6. </dependency>  

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

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

分享到:
评论
3 楼 zoezhang 2012-11-20  
谢谢了,可以解决
2 楼 萧_瑟 2012-04-06  
根本就不行
1 楼 luoaz 2011-10-20  
我试了一下,就算是加入javax-api的依赖,启动tomcat时还是会报java.lang.ClassCastException: org.apache.jasper.servlet.JspServlet cannot be cast to javax.servlet.Servlet


楼主还有什么别的解决办法 吗?

相关推荐

    解决cannot be cast to javax.servlet.Filter 报错的问题

    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/...

    javax.servlet.jar下载

    javax.servlet.Filter.class javax.servlet.FilterConfig.class javax.servlet.ServletRequestAttributeListener.class javax.servlet.ServletRequestAttributeEvent.class javax.servlet.GenericServlet.class ...

    javax.servlet-api-3.1.0-sources.zip

    下地址https://repo1.maven.org/maven2/javax/servlet/javax.servlet-api/3.1.0/ 各个版本都有 javax.servlet-api-3.1.0-sources.jar

    javax.servlet-3.0.0.v201112011016-API文档-中文版.zip

    赠送jar包:javax.servlet-3.0.0.v201112011016.jar; 赠送原API文档:javax.servlet-3.0.0.v201112011016-javadoc.jar; 赠送源代码:javax.servlet-3.0.0.v201112011016-sources.jar; 赠送Maven依赖信息文件:...

    javax.servlet-3.0.0.v201112011016-API文档-中英对照版.zip

    赠送jar包:javax.servlet-3.0.0.v201112011016.jar; 赠送原API文档:javax.servlet-3.0.0.v201112011016-javadoc.jar; 赠送源代码:javax.servlet-3.0.0.v201112011016-sources.jar; 赠送Maven依赖信息文件:...

    javax.servlet-api-3.1.0.jar中文文档.zip

    javax.servlet-api-***.jar中文文档.zip,java,javax.servlet-api-***.jar,javax.servlet,javax.servlet-api,***,jar包,Maven,第三方jar包,组件,开源组件,第三方组件,Gradle,javax,servlet,api,中文API文档,手册,开发...

    javax.servlet-api-4.0.0-API文档-中文版.zip

    Maven坐标:javax.servlet:javax.servlet-api:4.0.0; 标签:javax、servlet、api、中文文档、jar包、java; 使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。 人性化翻译,文档...

    javax.servlet-api-3.0.1.jar中文文档.zip

    javax.servlet-api-***.jar中文文档.zip,java,javax.servlet-api-***.jar,javax.servlet,javax.servlet-api,***,jar包,Maven,第三方jar包,组件,开源组件,第三方组件,Gradle,javax,servlet,api,中文API文档,手册,开发...

    javax.servlet-api-4.0.1-API文档-中英对照版.zip

    Maven坐标:javax.servlet:javax.servlet-api:4.0.1; 标签:javax、servlet、api、jar包、java、中英对照文档; 使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。 人性化翻译,...

    javax.servlet-api-4.0.1.jar中文文档.zip

    javax.servlet-api-***.jar中文文档.zip,java,javax.servlet-api-***.jar,javax.servlet,javax.servlet-api,***,jar包,Maven,第三方jar包,组件,开源组件,第三方组件,Gradle,javax,servlet,api,中文API文档,手册,开发...

    javax.servlet-api-4.0.0-API文档-中英对照版.zip

    Maven坐标:javax.servlet:javax.servlet-api:4.0.0; 标签:javax、servlet、api、中英对照文档、jar包、java; 使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。 人性化翻译,...

    javax.servlet-api-4.0.1-API文档-中文版.zip

    Maven坐标:javax.servlet:javax.servlet-api:4.0.1; 标签:javax、servlet、api、jar包、java、中文文档; 使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。 人性化翻译,文档...

    javax.servlet-api-4.0.0-b04.jar中文文档.zip

    javax.servlet-api-***.jar中文文档.zip,java,javax.servlet-api-***.jar,javax.servlet,javax.servlet-api,***,jar包,Maven,第三方jar包,组件,开源组件,第三方组件,Gradle,javax,servlet,api,中文API文档,手册,开发...

    javax.servlet-api-4.0.0-b01.jar中文文档.zip

    javax.servlet-api-***.jar中文文档.zip,java,javax.servlet-api-***.jar,javax.servlet,javax.servlet-api,***,jar包,Maven,第三方jar包,组件,开源组件,第三方组件,Gradle,javax,servlet,api,中文API文档,手册,开发...

    javax.servlet.jsp.jstl-1.2.1.jar.zip

    JSTL(Java server pages standarded tag library,即JSP标准标签库)是由JCP(Java community Proces)所制定的标准规范,它主要提供给Java Web开发人员一个标准通用的标签库,并由Apache的Jakarta小组来维护。...

    javax.servlet-api-4.0.0-b02.jar中文-英文对照文档.zip

    javax.servlet-api-***.jar中文-英文对照文档.zip,java,javax.servlet-api-***.jar,javax.servlet,javax.servlet-api,***,jar包,Maven,第三方jar包,组件,开源组件,第三方组件,Gradle,javax,servlet,api,中文-英文...

    javax.servlet-api-3.1-b08.jar中文-英文对照文档.zip

    javax.servlet-api-***.jar中文-英文对照文档.zip,java,javax.servlet-api-***.jar,javax.servlet,javax.servlet-api,***,jar包,Maven,第三方jar包,组件,开源组件,第三方组件,Gradle,javax,servlet,api,中文-英文...

    javax.servlet-api-4.0.1.jar中文-英文对照文档.zip

    javax.servlet-api-***.jar中文-英文对照文档.zip,java,javax.servlet-api-***.jar,javax.servlet,javax.servlet-api,***,jar包,Maven,第三方jar包,组件,开源组件,第三方组件,Gradle,javax,servlet,api,中文-英文...

    javax.servlet-api-4.0.0.jar中文-英文对照文档.zip

    javax.servlet-api-***.jar中文-英文对照文档.zip,java,javax.servlet-api-***.jar,javax.servlet,javax.servlet-api,***,jar包,Maven,第三方jar包,组件,开源组件,第三方组件,Gradle,javax,servlet,api,中文-英文...

    javax.servlet-api-3.0.1.jar中文-英文对照文档.zip

    javax.servlet-api-***.jar中文-英文对照文档.zip,java,javax.servlet-api-***.jar,javax.servlet,javax.servlet-api,***,jar包,Maven,第三方jar包,组件,开源组件,第三方组件,Gradle,javax,servlet,api,中文-英文...

Global site tag (gtag.js) - Google Analytics