2011-02-07 53 views
9

我收到以下错误信息:ClassCastException异常而解析XML与WebLogic

java.lang.ClassCastException:weblogic.xml.jaxp.RegistryDocumentBuilderFactory不能转换到javax.xml.parsers.DocumentBuilderFactory中

我已经通过一些研究这个问题的论坛。他们表示要删除xml-apis.jar或JAR文件存在冲突。但即使我完成了所有建议的步骤,我也遇到了同样的错误。

+1

检查sotretus答案在这个线程。如果您使用Maven2,它可能适用于您。 http://forum.springsource.org/archive/index.php/t-22597.html – 2011-02-07 20:10:59

+0

您是否验证过WEB-INF/lib中没有留下任何jar? – 2011-02-07 20:13:39

回答

4

我认为巴南是正确的。论坛http://forum.springsource.org/showthread.php?t=22597描述了类似问题的解决方案。

通常,如果在类路径中存在多个相同类的版本,而这些版本是由不同的类加载器加载的,则会发生此类问题。一个版本的DocumentBuilderFactory由系统类加载器加载,其他类型则由企业应用程序的类加载器加载。在调用XML解析器时,将使用父类的类版本。当你投射你的私人版本被利用。这些版本不兼容导致ClassCastException。

11

它总是xml-apis.jar。将它们从类路径中移除(例如,从Web应用程序的WEB-INF/lib中移除它们)。

1

我希望对以前对这个问题的回答略作补充,如果其他人处于与我相同的情况。由于使用CXF 2.2.3,我在WebLogic 9.2服务器上遇到同样的问题。除了前面提到的xml-apis.jar的移除之外,我还必须移除一个xmlParserAPIs库。

因为我使用的是Maven2,所以只需添加另一个包含就可以了。

<!-- CXF --> 
    <dependency> 
     <groupId>org.apache.cxf</groupId> 
     <artifactId>cxf-bundle</artifactId> 
     <version>${dependency.version.cxf}</version> 
     <scope>compile</scope> 
     <exclusions> 
      <exclusion> 
       <artifactId>xml-apis</artifactId> 
       <groupId>xml-apis</groupId> 
      </exclusion> 
      <exclusion> 
       <artifactId>xercesImpl</artifactId> 
       <groupId>xerces</groupId> 
      </exclusion> 
      <exclusion> 
       <artifactId>xmlbeans</artifactId> 
       <groupId>org.apache.xmlbeans</groupId> 
      </exclusion> 
      <exclusion> 
       <artifactId>xmlParserAPIs</artifactId> 
       <groupId>xerces</groupId> 
      </exclusion> 
     </exclusions> 
    </dependency> 

希望这可以帮助别人!

1

我们也有这样的麻烦。错误的原因是在gwt库中。 Receipe:从distr中排除所有gwt客户端库。

2

这个问题的原因是你在库中有多个具有相同类名的jar。 转到WEB-INF/lib并删除xml-apis-1.0.b2.jar和stax-api-1.0.1.jar,或者将它们从pom.xml本身中删除,这样你就会很好。

4

将xml-beans-1.xb2移除到lib目录。修改了POM所以它不包括与下列条件的jar文件:

<dependency> 
    <groupId>xml-apis</groupId> 
    <artifactId>xml-apis</artifactId> 
    <version>1.0.b2</version> 
    <scope>provided</scope> 
</dependency> 
0

至于我的情况,我设法通过删除XML的API库,并能升级XML处理库来解决这个问题:

org.apache.xmlbeans/xmlbeans/2.4.0

进入 org.apache.xmlbeans/xmlbeans/2.6.0

通知你,我使用WebLogic 10.3.6.0。