0

我在部署应用程序 websphere 8.5 时遇到了与链接相关的问题

Error in the XML parsing of the included Input Stream: java.lang.LinkageError: loading constraint violation when resolving method "javax/xml/parsers/SAXParser.parse(Lorg/xml/sax/InputSource;Lorg/xml/sax/helpers/DefaultHandler;)V" : loader "com/ibm/ws/classloader/CompoundClassLoader@aa54261e" of class "com/XMLParser/CreateParser" and loader "com/ibm/oti/vm/BootstrapClassLoader@1c4565b7" of class "javax/xml/parsers/SAXParser" have different types for the method signature.

我的班级路径中有以下罐子。我已将加载程序设置为 PARENT_LAST。

我尝试使用 main 方法单独调试该类,发现它正在使用 jdk 1.5 rt.jar 的 saxparser 的 impl 并且它按预期工作。部署 ear 后,它会在代码命中 SAXParser.parse(InputSoruce,DefaultHandler) 方法时引发异常。

jaxb-impl 2.2.6、jaxb-libs-1.0.5、jaxb-xjc-2.0EA3、dom4j-1.1、sax 2.0.1

有人对这个问题有任何想法吗?

4

1 回答 1

2

您的类加载器可以看到 org.xml.sax 的两个副本。第一个是因为您在 PARENT_LAST 类加载器中包含了 SAX API,第二个是通过 JRE 中的 javax.xml.parsers 间接实现的。您要么需要从应用程序中删除 SAX API JAR,要么需要将 javax.xml(可能还有更多)API + impl 添加到应用程序中。

于 2014-05-14T14:10:05.177 回答