java.lang.LinkageError:接口itable初始化中的加载程序约束冲突:解析方法时

java.lang.LinkageError:接口itable初始化中的加载程序约束冲突:解析方法时,java,web-services,Java,Web Services,我开发了一个web服务,在链接之后使用java进行身份验证 如果我使用JDK 1.6/JBoss 4.2,同样可以正常运行,但是当我在JBoss 5.1.0 GA中部署它时,我得到了部署错误。我在google上搜索发现JDK1.6、Jboss和我的应用程序之间存在一些jar冲突。并将JBoss/lib/jaxws-ri.jar替换为最新的jaxws-ri-2.2.8.jar。但我现在无法确定哪个jar正在制造冲突 下面是我的web.xml、sun-jaxws.xml和exception代码 we

我开发了一个web服务,在链接之后使用java进行身份验证 如果我使用JDK 1.6/JBoss 4.2,同样可以正常运行,但是当我在JBoss 5.1.0 GA中部署它时,我得到了部署错误。我在google上搜索发现JDK1.6、Jboss和我的应用程序之间存在一些jar冲突。并将JBoss/lib/jaxws-ri.jar替换为最新的jaxws-ri-2.2.8.jar。但我现在无法确定哪个jar正在制造冲突

下面是我的web.xml、sun-jaxws.xml和exception代码

web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">
<display-name>biservices</display-name>
<listener>
<listener-class>
        com.sun.xml.ws.transport.http.servlet.WSServletContextListener
    </listener-class>
</listener>
<servlet>
<servlet-name>BiServices</servlet-name>
 <servlet-class>com.sun.xml.ws.transport.http.servlet.WSServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>BiServices</servlet-name>
<url-pattern>/biservices</url-pattern>
</servlet-mapping>
<session-config>
<session-timeout>120</session-timeout>
</session-config>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
</web-app>


sun-jaxws.xml
<?xml version="1.0" encoding="UTF-8"?>
<endpoints xmlns="http://java.sun.com/xml/ns/jax-ws/ri/runtime" version="2.0">
<endpoint
   name="IBiUpdate"
   implementation="com.sbilife.ws.BiUpdate"
   url-pattern="/biservices"/>
</endpoints>

exception
java.lang.LinkageError: loader constraint violation in interface itable initialization: when resolving method "com.sun.xml.ws.util.xml.XMLStreamReaderFilter.getAttributeName(I)Ljavax/xml/namespace/QName;" the class loader (instance of org/jboss/classloader/spi/base/BaseClassLoader) of the current class, com/sun/xml/ws/util/xml/XMLStreamReaderFilter, and the class loader (instance of <bootloader>) for interface javax/xml/stream/XMLStreamReader have different Class objects for the type javax/xml/namespace/QName used in the signature
web.xml
biservices
com.sun.xml.ws.transport.http.servlet.WSServletContextListener
BiServices
com.sun.xml.ws.transport.http.servlet.WSServlet
1.
BiServices
/biservices
120
index.jsp
sun-jaxws.xml
例外
java.lang.LinkageError:接口itable初始化中的加载程序约束冲突:解析当前类的方法“com.sun.xml.ws.util.xml.XMLStreamReaderFilter.getAttributeName(I)Ljavax/xml/namespace/QName;”类加载程序(org/jboss/classloader/spi/base/BaseClassLoader的实例)时,com/sun/xml/ws/util/xml/XMLStreamReaderFilter和接口javax/xml/stream/XMLStreamReader的类加载器(的实例)对于签名中使用的javax/xml/namespace/QName类型具有不同的类对象
谢谢
Pise

引发异常是因为在web应用程序中至少存在一个包含
javax.xml.namespace.QName
类的jar,并且该类与JBoss的一个jar中包含的相同类冲突

在JBoss上部署时,应该从web应用程序中删除这些jar


包含
javax.xml.namespace.QName
类的jar列表位于

您是否在JBoss中部署了多个包含javax/xml/namespace/QName的jar?@Caleryn但是如何找到哪个jar。在
web inf/lib
中运行这个python脚本,看看哪个jar是dupfarmer1992谢谢你的代码,Caleryn,但是我在eclipse中找到了一种在jar文件中搜索类的方法,实际上我认为搜索不会搜索jar类,而是在jar中搜索。搜索XMLStreamReaderFilter.getAttributeName(I)方法或javax/xml/namespace/QName的具体方法是什么,因为我的一个朋友告诉我getAttributeName(I)正在创建冲突,而这个类只能在jaxws-rt.jar中找到。当我搜索javax/xml/namespace/QName时,没有匹配项。