java.lang.ClassCastException: com.ctc.wstx.stax.WstxOutputFactory异常处理

来源:互联网 发布:2016中国家庭暴力数据 编辑:程序博客网 时间:2024/05/29 18:06

Jboss上环境部署项目,出现java.lang.ClassCastException: com.ctc.wstx.stax.WstxOutputFactory异常,网上各种搜索,没有该异常的处理。

异常表述为WstxOutputFactory类转换异常,位置at javax.xml.stream.XMLOutputFactory.newInstance(),应该是不同的jar包含有WstxOutputFactory类,导致jar包冲突。

程序正常应该引用geronimo-stax-api_1[1].0_spec-1.0.1.jar里面的XMLOutputFactory类,调试发现未引用该jar包。

解决过程:(准备查找包里含有WstxOutputFactory的jar包,却发现工程引用的jar包实在是太多,不可能逐一查找,所以,陷入迷茫阶段。有些人就开始删除jar包,因为公司项目分为平台项目和现场项目,平台搭建的时候为出现异常,那么肯定是现场添加的jar包,导致的异常,虽然这是个很不明智的做法,但是应该能解决问题。我继续上网查找资料,在一篇国外论坛上找到有人处理相似问题,其中提到了他的解决方法,其中提到将stax-api-1.0.1.jar 和geronimo-stax-api_1[1].0_spec-1.0.1.jar包删除,会出现新的异常,最后他的解决方法是删除xml-apis,stax-api-1.0.1.jar 和geronimo-stax-api_1[1].0_spec-1.0.1.jar包,这样就对了。但是我发现我的项目中不存在xml-apis,所以,又陷入迷茫。但是感觉到了希望。最后,发现stax-api-1.0.1.jar 和geronimo-stax-api_1[1].0_spec-1.0.1.jar名字很相似,觉得应该是这两个jar包冲突,而平台项目中只有geronimo-stax-api_1[1].0_spec-1.0.1.jar包,所以想着将JBoss环境上的stax-api-1.0.1.jar 包删除,问题有可能会解决。然后经过测试,将JBoss环境上的stax-api-1.0.1.jar 包删除,问题就解决了,最终确定了是该jar包与geronimo-stax-api_1[1].0_spec-1.0.1.jar冲突。)

解决方案:将JBoss环境上的stax-api-1.0.1.jar 包删除。

备注:遇到问题搜索时,一般用百度搜索和谷歌搜索,其实个人认为谷歌搜索最好,但很多情况不能使用,如果百度搜索没能找到解决方法,可以试着用360搜索或其他搜获,也许能搜到想要的答案。


0 0