当我们在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中部署似乎无论下面的答案中的设置如何都会重现此问题。一旦出现异常,它将无法解决,唯一的解决方案是重新启动服务器实例。
答案 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>