Ich hatte dieses genaue Problem selbst und verschwendete einen guten halben Tag damit, es zu reparieren, weil wie vage die Fehlermeldung ist. Das Problem liegt bei Ihrem SOAP-Dienst (NICHT bei der Client-Implementierung). Es wird ein Fehler ausgegeben, da ein Namespace-Problem mit der XML-Datei besteht, die Sie an den Client senden.
Es gibt drei mögliche Gründe für die Ausgabe nach this article:
- Ein Null Namespacepräfix
- Ein Namespacepräfix „xml“, die nicht in der namespaceURI von „http: // www. w3.org/XML/1998/namespace“
- ein Namespacepräfix von "xmlns http://www.w3.org/2000/xmlns/", die nicht in dem von namespaceURI ist ""
in mein Fall war es # 1 oben, dass cau sed das Problem. Ich habe das XML nicht mit einem Namespace zurückgegeben. Ich reparierte sie durch einen Namensraum hinzugefügt (der „ns“ Variable) mit dem Wurzelelement und alle untergeordneten Knoten wie folgt:
Namespace ns = Namespace.getNamespace("tns", "http://mycompany.com/schemas");
Element result = new Element("ResponseType", ns);
Document doc = new Document(result);
result.addContent(new Element("StatusCode", ns).setText(code));
result.addContent(new Element("Message", ns).setText(message));
Es ist wichtig, dass mein Beispiel-Code für JDom ist, nicht Dom4j als die Person zu beachten war fragend. Sie müssen den Code verwenden, der für die XML-Bibliothek, die Sie gerade verwenden, geeignet ist.
Was muss ich tun, wenn ich durch eine andere Abhängigkeit xalan-2.6.0 zu verwenden gezwungen bin? – Everv0id