适用于SAXParser的websphere 8.5中的链接错误

时间:2014-05-14 12:55:22

标签: websphere linkageerror

我在部署应用程序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并且它正在按预期工作。部署之后,当代码命中SAXParser.parse(InputSoruce,DefaultHandler)方法时,它会抛出异常。

jaxb-impl 2.2.6, JAXB的库-1.0.5, JAXB的XJC-2.0EA3, dom4j的-1.1, sax 2.0.1

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

1 个答案:

答案 0 :(得分:2)

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