2

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

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

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

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

4

1 回答 1

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>
于 2013-07-09T16:28:43.480 回答