在使用Rose框架进行web开发,并采用maven的tomcat插件的时候,会遇到下面这个问题
java.lang.ClassCastException: net.paoding.rose.RoseFilter cannot be cast to javax.servlet.Filter
产生这个问题的原因肯能是加载了两个Filter,由于类加载器不同而导致的
带着这个疑问去看了一下tomcat6-maven-plugin和paoding-rose两个工程的maven依赖,
发现他们都依赖了servlet-api包,而且两个包的scope都设置成了运行时可用——
tomcat6-maven-plugin为runtime,paoding-rose为compile。
找到了问题的根源,接着就需要解决这个问题。简单来说去掉一个servlet-api就行了,
tomcat6-maven-plugin的无法改变,就只好拿paoding-rose来开刀了,最简单的办法就是将
paoding-rose对servlet-api的依赖去掉,这个工作可以通过exclusions元素来实现。
但是项目在编译和测试阶段还是需要servlet-api包的,因此还要在另外加上对servlet-api
的依赖,不同的是,这个依赖的scope要选择provided。
最终的pom.xml文件如下所示:
<dependencies> <dependency> <groupId>net.paoding</groupId> <artifactId>paoding-rose</artifactId> <version>1.0-SNAPSHOT</version> <exclusions> <exclusion> <groupId>javax.servlet</groupId> <artifactId>servlet-api</artifactId> </exclusion> </exclusions> </dependency> <dependency> <groupId>javax.servlet</groupId> <artifactId>servlet-api</artifactId> <version>2.3</version> <scope>provided</scope> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <configuration> <source>1.5</source> <target>1.5</target> </configuration> </plugin> <plugin> <groupId>org.apache.tomcat.maven</groupId> <artifactId>tomcat6-maven-plugin</artifactId> <version>2.0</version> <configuration> <port>8080</port> <path>/</path> <uriEncoding>utf-8</uriEncoding> </configuration> </plugin> </plugins> </build>
相关推荐
ebean,sbean,dto
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/...
Java 四种方式操作xml,包括xml,dom,sax,jdom这四种方式的一个简单例子。
其他还有很多异常,我就不一一列举了,我要说明的是,一个合格的...java.lang.ClassCastException 类造型异常。假设有类A和B(A不是B的父类或子类),O是A的实例,那么当强制将O构造为类B的实例时抛出该异常。该异常
简单封装一个精美、好用的菜单型PopupWindow
二:保证 ImageCycleView的 父布局是LinearLayout 否则可能会报异常,比如 java.lang.ClassCastException: android.widget.LinearLayout$LayoutParams cannot be cast to android.widget.RelativeLayout$...
weblogic下转换oracle 的clob类型经常报转型错误,本例子通过反射解决weblogic.jdbc.wrapper.Clob_oracle_sql_CLOB转型成oracle.sql.CLOB问题
例如,要在 REPL 中打印一个不错的堆栈跟踪: => (use 'clj-stacktrace.repl)=> ("foo")java.lang.ClassCastException: java.lang.String cannot be cast to clojure.lang.IFn (NO_SOURCE_FILE:0) Compiler.java:...
Load canal adapter: es7 failed java.lang.RuntimeException: java.lang.RuntimeException: java.lang.ClassCastException: com.alibaba.druid.pool.DruidDataSource cannot be cast to ...canal-adapter1.1.5报错, 将...
java.lang.RuntimeException: java.lang.RuntimeException: java.lang.ClassCastException: com.alibaba.druid.pool.DruidDataSource cannot be cast to com.alibaba.druid.pool.DruidDataSource 可用这个jar替换...
主要介绍了 java.util.ConcurrentModificationException 解决方法的相关资料,需要的朋友可以参考下
解决canal同步es报错: java.lang.ClassCastException: com.alibaba.druid.pool.DruidDataSource cannot be cast to com.alibaba.druid.pool.DruidDataSource
44.java.lang.ClassCastException 类造型异常。假设有类A和B(A不是B的父类或子类),O是A的实例,那么当强制将O构造为类B的实例时抛出该异常。该异常经常被称为强制类型转换异常。 45.java.lang....
tomcat8.0.35刚好像没上传成功 java.lang.ClassCastException: org.slf4j.impl.Log4jLoggerFactory cannot be cast to ch.qos.logback.classic.LoggerContext
主要介绍了Mybatis报错: org.apache.ibatis.exceptions.PersistenceException解决办法的相关资料,需要的朋友可以参考下
QQ 在线状态查询,主要解决java.lang.ClassCastException: org.ksoap2.serialization.SoapPrimitive的问题,我们将改错误的SoapObject更改为 Object 类型,该错误即可消除
一个基本的libpython-clj项目 希望这将有助于重现我所观察到的问题,该问题在评估代码时启用了nREPL 0.8.2,Clojure 1.10.2... class java.lang.String cannot be cast to class clojure.lang.Keyword ( java.lang.Str
hive的一些报错及解决方法:连接报错、执行脚本卡住、内存溢出报错、表死锁问题
类型错误现在在编译期间被捕获到了,而不是在运行时当作java.lang.ClassCastException展示出来,将类型检查从运行时挪到编译时有助于开发者更容易找到错误,并提高程序的可靠性 2、消除了代码中许多的强制类型...