Resolución de clase XPath en JBoss5

Me está costando mucho averiguar de dónde viene el problema, así que publico esto con la esperanza de que otros hayan encontrado algo similar a esto en otro lugar y sean lo suficientemente amables como para compartir sus ideas.

Estoy usando unJBoss 5.0.1.GA servidor de aplicaciones que se ejecuta encima de unSun Java 1.6.0-13 JDK. Para el archivo WAR en el servicio web generado, utilizo unEje2 1.4 Motor WS cuyos archivos JAR son insertados porEclipse Galileo en el proyectoWEB-INF/lib directorio al crear el servicio web a partir de la clase "trabajador" dada en el proyecto web dinámico. El fragmento de código relevante sigue:

String sUrl = "http://example.com/datafile.xml";
String sPath = "/some/xpath/string";
InputStream input = new URL(sUrl).openStream();
InputSource source = new InputSource(input);
DocumentBuilderFactory docFact = DocumentBuilderFactory.newInstance();
docFact.,setNamespaceAware(false);
DocumentBuilder parser = docFact.newDocumentBuilder();
Document doc = parser.parse(source);
XPath xpath = XPathFactory.newInstance().newXPath();
// error occurs here:
String result = (String) xpath.evaluate(path,doc,XPathConstants.STRING);
input.close();

Este es el error que obtengo del registro de JBoss:

java.lang.LinkageError: violación de la restricción del cargador: al resolver el campo "STRING", el cargador de clases (instancia de org / jboss / classloader / spi / base / BaseClassLoader) de la clase de referencia, javax / xml / xpath / XPathConstants y la clase El cargador (instancia de <bootloader>) para el tipo resuelto del campo, javax / xml / namespace / QName, tiene diferentes objetos de clase para ese tipo

I podría utilizar elXPath.evaluate(String,Document) - Sin embargo, hay ocasiones en las que necesito obtener (por ejemplo) unXPathConstants.NODESET en cambio, es un no-go. También he tratado de hurgar un poco tirando basurajboss-web.xml archivos aquí y allá en el archivo WAR, pero sin efecto.

Lo que estoy tratando de entender es:

¿De dónde podría venir el error? ¿El cargador de clases JBoss? ¿Alguna interacción extraña entre JBoss y Sun JDK? ¿Alguna rareza introducida por Eclipse al crear el servicio web? ¿Quizás alguna confusión introducida por las bibliotecas Axis2 implementadas dentro de WAR?He encontrado instancias de archivos de clase compilados en lo que parece un triple whammie:Sun JDK (archivort.jar);Bibliotecas JBoss ($JBOSS_HOME/lib/endorsed/stax-api.jar); yBibliotecas implementadas en Axis2 ($JBOSS_HOME/server/deploy/MyProject.ear/MyProject.war/WEB-INF/lib/axis2-saaj-api-1.4.jar ywoden-impl-dom-1.0M8.jar)¿Cómo exactamente se supone que debo configurar JBoss para decirle desde qué clases está bien cargar desde "otras" bibliotecas? Específicamente, eljaxax.xml.namespace.QName Esto está causando el dolor.

Gracias de antemano.

Respuestas a la pregunta(2)

Su respuesta a la pregunta