Je rencontre un problème avec la manière dont JAX-WS (Java 1.6) génère les messages soap à envoyer au serveur distant. J'ai utilisé l'importation WSDL pour générer toutes les classes nécessaires mais j'ai remarqué que lorsque le message SOAP est envoyé au serveur, il insère un xmlns = "" et un xmlns: ns2 = "http: // somexmlnamespace" sur un nœud imbriqué comme ceci:Message de savon client JAX-WS Insertion d'un espace de noms vide sur des noeuds imbriqués
<?xml version="1.0" encoding="UTF-8"?>
<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
<S:Body xmlns="http://somexmlnamespace">
<ParentNode xmlns="http://somexmlnamespace">
<ChildNode xmlns="" xmlns:ns2="http://somexmlnamespace">
</ChildNode>
</ParentNode>
</S:Body>
</S:Envelope>
La zone vide xmlns = "" provoque des problèmes avec le service auquel j'essaie de me connecter. Si je publie le message manuellement sans cela:
<ChildNode xmlns:ns2="http://somexmlnamespace">
</ChildNode>
la réponse de message de savon est ce que je m'attends à ce qu'il soit. Comment est-ce que je pourrais avoir Java sans envoyer le xmlns = ""? Y a-t-il une modification dans les classes générées dans les annotations XML ou un gestionnaire de messages corrige-t-il cela?
coller le code généré spécifiquement à cette partie, je pense qu'il devrait y avoir quelque chose qui pointe vers l'espace de noms, utilisez-vous wsdl2import, jaas, ou quel outil pour créer le client? – Koitoer