miércoles, 30 de enero de 2013

java.lang.LinkageError: loader constraint violation - javax/xml/namespace/QName

Hace poco me salio este error en el JBoss 5.1 al desplegar una nueva aplicacion:

Servlet.service() para servlet appServlet lanzó excepción
java.lang.LinkageError: loader constraint violation in interface itable initialization: when resolving method "org.apache.axis.message.MessageElement.getChildElements(Ljavax/xml/namespace/QName;)Ljava/util/Iterator;" the class loader (instance of org/jboss/classloader/spi/base/BaseClassLoader) of the current class, org/apache/axis/message/MessageElement, and the class loader (instance of ) for interface javax/xml/soap/SOAPElement have different Class objects for the type javax/xml/namespace/QName used in the signature
at org.apache.axis.client.Call.invoke(Call.java:2364)
at org.apache.axis.client.Call.invoke(Call.java:1812)

Con JBOSS_HOME: \java\jboss-eap-5.1\jboss-as y JAVA: \java\jdk1.6\bin\java

Se trata que la clase javax.xml.namespace.QName se encuentra repetido en varios JAR de JBOSS+aplicacion+JAVA.

Buscando en la aplicacion encontre que javax.xml.namespace.QName estaba en jaxrpc.jar
Buscando en el JBOSS encontre que javax.xml.namespace.QName estaba en \jboss-as\lib\endorsed\stax-api-1.0.jar
Buscando en el JAVA encontre que javax.xml.namespace.QName estaba en \java\jdk1.6\jre\lib\rt.jar

La solucion fue borrar el stax-api-1.0.jar de la carpeta endorsed y borrar el javax.xml.namespace.QName.class de JAR jaxrpc.jar y asi que la aplicacion cargaba un jaxrpc.jar modificado manualmente.
Compartir:

0 comentarios:

Publicar un comentario