WebLogic中的Xerces ClassCastException

时间:2013-07-09 16:28:43

标签: java weblogic

当我们在WebLogic 10.3.5中开始使用JPA时,我们偶尔会注意到以下异常。大约一半的时间我们将启动服务器任何JPA调用将导致错误,另一半时间它是好的。

  

java.lang.ClassCastException ::   org.apache.xerces.parsers.StandardParserConfiguration无法强制转换   to org.apache.xerces.xni.parser.XMLParserConfiguration“发生时   试图确定“myPersistenceXmlFileHere.xml”的版本

在我们的EAR中,是项目的其他部分(非JPA)使用的xercesImpl jat没有问题。我怀疑问题只是来自WebLogic实现jar的干扰。

更新:(重新)在Eclipse中部署似乎无论下面的答案中的设置如何都会重现此问题。一旦出现异常,它将无法解决,唯一的解决方案是重新启动服务器实例。

1 个答案:

答案 0 :(得分:1)

在我们的weblogic-application.xml中,我们通过反复试验添加了以下内容。我们现在没有任何ClassCastExceptions,因为在这种情况下本地jar应该优先。

<wls:prefer-application-packages>
    <wls:package-name>org.eclipse.persistence.*</wls:package-name>
    <wls:package-name>org.apache.xerces.xni.parser.*</wls:package-name>
    <wls:package-name>org.apache.xerces.parsers.*</wls:package-name>
    <wls:package-name>org.apache.xalan.*</wls:package-name>
</wls:prefer-application-packages>