使用prefer-web-inf-classes时weblogic中的ClassCastException

时间:2011-12-09 22:27:52

标签: java java-ee maven xml-parsing weblogic

我必须添加

<prefer-web-inf-classes>true</prefer-web-inf-classes>

到weblogic.xml以解决与Weblogic的Hibernate antr兼容性问题。在添加之后,我得到了与XML解析器相关的所有不同类classCastException。

通过阅读其他主题,我了解到weblogic正在尝试使用与应用程序所期望的不同的类。

我花了一整天时间研究并尝试了不同的解决方案,例如删除“xml-apis .......”jar文件。但每次我得到ClassCastException。当我删除jar文件时,强制转换“from”类会改变,但我总是得到

ClassCastException: "some xml parser related class" can not be cast to javax.xml.parsers.DocumentBuilderFactory

有没有办法知道哪个xml解析器jar真正导致了这个问题。

我正在使用Maven 2来管理依赖关系

2 个答案:

答案 0 :(得分:1)

回答我自己的问题:

我通过执行java搜索并搜索包并在“应用程序库”中检查搜索,从javax.xml。*包中删除了包含类的所有jar。然后我不得不删除sax..jar文件。一切都按预期发挥作用。

答案 1 :(得分:1)

回答你自己的问题。我也发现了这种方法(如果你使用maven),它会生成一个非常好的依赖图表。我有同样的问题,并使用依赖关系图我能够确定违规库xml-apis * .jar由maven作为jasperreports的依赖项加载。将排除元素添加到jasperreports模块的pom.xml中可以解决问题。

http://maven.40175.n5.nabble.com/where-is-xml-apis-1-0-b2-jar-coming-from-td88057.html