我对Weblogic类加载器有问题。
[当我尝试在WL 12.2.1.2.0上部署我的应用程序时,它将失败。在服务器上的日志中,我看到
java.lang.ClassNotFoundException: org.w3c.dom.ElementTraversal
该类属于xml-apis
库。该库带有另一个依赖项(例如传递依赖项)进入我的应用程序。 xml-apis
的版本为1.4.01。
之后,我在部署描述符中添加了例外:
<container-descriptor>
<prefer-application-packages>
<package-name>org.w3c.dom.*</package-name>
</prefer-application-packages>
</container-descriptor>
以及后来的新部署。解决了org.w3c.dom.ElementTraversal
的问题。不再有关于缺少org.w3c.dom.ElementTraversal
类的任何信息。
但是有一个新问题:java.lang.ClassNotFoundException: org.w3c.dom.Document
经过分析,我发现org.w3c.dom.Document
类来自JRE(jre / lib / rt.jar)。因此,在部署描述符中,我说过:
“如果我需要org.w3c.dom.*
软件包中的某些内容,请从我的应用分发版本中加载它”。现在有这样的矛盾之处。
我曾经有过使用WL Classloader分析工具(CAT)的想法,但由于部署失败,这是不可能的。
从我的耳中排除xml-apis
和xerces
库,我们提到here并没有帮助我。
有人知道如何解决我的问题吗?
感谢您的回答。
在不更改部署描述符的情况下从我的EAR中排除xercexImpl
库解决了我的问题。从WL发行版中加载了新部署中提到的类。