XPath Klassenauflösung in JBoss5

Es fällt mir schwer herauszufinden, wo das Problem herkommt, und ich poste dies in der Hoffnung, dass andere etwas Ähnliches an anderer Stelle gefunden haben und so freundlich sind, ihre Einsichten zu teilen.

Ich benutze einJBoss 5.0.1.GA Anwendungsserver läuft auf einemSun Java 1.6.0-13 JDK. Für die WAR-Datei im generierten Web-Service verwende ich ein Axis2 1.4 WS-Engine, deren JAR-Dateien von @ eingefügt werdEclipse Galileo in das @ des ProjekWEB-INF/lib -Verzeichnis beim Erstellen des Webservices aus der angegebenen "Worker" -Klasse im Dynamic Web Project. Das entsprechende Code-Snippet lautet:

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();

Dies ist der Fehler, den ich aus dem JBoss-Protokoll erhalte:

java.lang.LinkageError: Loader-Einschränkungsverletzung: Beim Auflösen des Felds "STRING" wird der Klassenlader (Instanz von org / jboss / classloader / spi / base / BaseClassLoader) der verweisenden Klasse javax / xml / xpath / XPathConstants und der Klassenladeprogramm (Instanz von <Bootloader>) für den aufgelösten Feldtyp javax / xml / Namespace / QName hat unterschiedliche Klassenobjekte für diesen Typ

I könnte benutze dasXPath.evaluate(String,Document) - aber es gibt Fälle, in denen ich (zum Beispiel) ein @ bekommen muXPathConstants.NODESET stattdessen ist es ein No-Go. Ich habe auch versucht, ein wenig zu fummeln, indem ich einigejboss-web.xml -Dateien hier und da in der WAR-Datei, aber ohne Wirkung.

as ich zu verstehen versuche, ist:

Woher könnte der Fehler kommen? Der JBoss-Klassenlader? Irgendeine seltsame Interaktion zwischen JBoss und dem Sun JDK? Irgendeine Verrücktheit, die von Eclipse beim Erstellen des Webdienstes eingeführt wurde? Vielleicht etwas Verwirrung durch die in der WAR implementierten Axis2-Bibliotheken? Ich habe Instanzen kompilierter Klassendateien gefunden, die wie ein Triple-Whammie aussehen:Sun JDK (Dateirt.jar);JBoss Bibliotheken $JBOSS_HOME/lib/endorsed/stax-api.jar); un Von Axis2 bereitgestellte Bibliotheken $JBOSS_HOME/server/deploy/MyProject.ear/MyProject.war/WEB-INF/lib/axis2-saaj-api-1.4.jar undwoden-impl-dom-1.0M8.jar).Wie genau soll ich JBoss so konfigurieren, dass es mitteilt, aus welchen Klassen "andere" Bibliotheken geladen werden dürfen? Insbesondere dasjaxax.xml.namespace.QName ist verursacht den Kummer.

Danke im Voraus

Antworten auf die Frage(4)

Ihre Antwort auf die Frage