Warum erhalte ich zur Laufzeit den Fehler "DOM Level 3 nicht implementiert"?
Ich arbeite derzeit an der Entwicklung eines Apache CXF-Webdienstes mit XMLBeans-Bindung anstelle der JAXB-Standardbindung. Ich kompiliere und starte den Code mit Java 1.6. Ich erhalte zur Laufzeit den Fehler "DOM Level 3 nicht implementiert" für den folgenden Codeausschnitt:
ExtType[] extTypeList = p.getExtArray();
for (ExtType extType : extTypeList) {
Node node = extType.getDomNode();
NodeList objList = node.getChildNodes();
for (int i = 0; i < objList.getLength(); ++i) {
Node text = (Node) objList.item(i);
if (text.getNodeName() != null
&& text.getNodeName() == XmlConstant.NODE_NAME) {
info.setDuration(text
.getTextContent());
}
}
}
Der genaue Fehler, der in JBoss angezeigt wird, lautet wie folgt:
java.lang.RuntimeException: DOM Level 3 Not implemented
at org.apache.xmlbeans.impl.store.DomImpl._node_getTextContent(DomImpl.java:2516)
at org.apache.xmlbeans.impl.store.Xobj$NodeXobj.getTextContent(Xobj.java:2607)
Aus der obigen Fehlermeldung geht hervor, dass die Methode getTextContent die Ausnahme verursacht, da die APIs der DOM-Ebene 3 zur Laufzeit nicht gefunden werden. Wie behebe ich diesen Fehler? Ich schätze, ich muss herausfinden, welche JAR-Datei die DOM-APIs enthält, und alle dom-bezogenen Klassen aus dieser JAR-Datei löschen, damit stattdessen die mit jdk gelieferten Standard-DOM-APIs verwendet werden. Gibt es eine Möglichkeit, den Textinhalt eines XML-Tags mithilfe von DOM abzurufen, ohne sich auf die Methode getTextContent zu verlassen?