J'ai eu ce problème exact moi-même et j'ai gaspillé une bonne demi-journée à le réparer à cause du vague message d'erreur. Le problème est avec votre service SOAP (PAS l'implémentation du client). Il génère une erreur car il existe un problème d'espace de nom avec le fichier XML que vous envoyez au client.
Il y a trois raisons possibles pour la question selon this article:
- Un namespace prefix null
- Un préfixe d'espace de noms "xml" qui ne sont pas dans le namespaceURI de « http: // www. w3.org/XML/1998/namespace »
- Un préfixe d'espace de noms de "xmlns" qui ne sont pas dans le namespaceURI de "http://www.w3.org/2000/xmlns/"
en mon cas c'était # 1 ci-dessus que cau sed le problème. Je ne renvoyais pas le XML avec un espace de noms. Je l'ai fixé en ajoutant un espace de noms (la « ns » variable) à l'élément racine et tous les nœuds enfants comme ceci:
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));
Il est important de noter que mon code exemple pour JDom, pas Dom4j que la personne était demander. Vous devrez utiliser le code approprié pour la bibliothèque XML que vous utilisez.
Que dois-je faire si je suis obligé d'utiliser xalan-2.6.0 par une autre dépendance? – Everv0id