Je viens de créer un client de service Web utilisant axis et eclipse qui ne fonctionne pas avec mon fournisseur de services Web. Le message créé par le client de service Web ressemble à ceci:Déplacer la déclaration d'espace de nom de la charge utile vers l'enveloppe sur un service Web créé par axe
<?xml version="1.0" encoding="UTF-8"?>
<soapenv:Envelope
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<soapenv:Body>
<enviarMensajeRequest
xmlns="http://www.springframework.org/spring-ws/Imk-Zenkiu-Services">
<usuario>someuser</usuario>
<clave>somepassword</clave>
<mensaje>somemessage</mensaje>
<contacto>
<buzonSMS>somenumber</buzonSMS>
<primerNombre>somefirstname</primerNombre>
<primerApellido>somelastname</primerApellido>
</contacto>
</enviarMensajeRequest>
</soapenv:Body>
</soapenv:Envelope>
Je ne vois rien de mal avec le message mais mon fournisseur insiste sur le message doit être:
<?xml version="1.0" encoding="UTF-8"?>
<soapenv:Envelope
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:imk="http://www.springframework.org/spring-ws/Imk-Zenkiu-Services">
<soapenv:Body>
<imk:enviarMensajeRequest>
<imk:usuario>someuser</imk:usuario>
<imk:clave>somepassword</imk:clave>
<imk:mensaje>somemessage</imk:mensaje>
<imk:contacto>
<imk:buzonSMS>somenumber</imk:buzonSMS>
<imk:primerNombre>somefirstname</imk:primerNombre>
<imk:primerApellido>somelastname</imk:primerApellido>
</imk:contacto>
</imk:enviarMensajeRequest>
</soapenv:Body>
</soapenv:Envelope>
Notez la déclaration d'espace de noms en mouvement de la enviarMensajeRequest
à la soapenv:Envelope
et la qualification avec imk:
sur les paramètres. J'ai essayé beaucoup de combinaisons sur le processus mais mon service Web, connaissances de wsdl et de xml est très limité. Le fournisseur dit qu'ils ne peuvent pas m'empêcher de me dire ça. Des idées? Peut-être un cadre différent que je peux utiliser pour créer le bon client.
Votre fournisseur est incorrect, ils sont sémantiquement identiques. L'Axe le sait et fait ce qu'il pense être le meilleur. Cela ne constitue pas un moyen facile de changer cela, car il n'y a pas de bonne raison de le faire. – skaffman
Merci. Des idées sur la façon d'aborder cela en plus de faire l'appel entier à la main? – rmarimon
@skaffman, merci pour votre réponse, mais est-il possible d'empêcher l'axe de faire comme ceci, sinon, je vais demander au fournisseur de serveur de corriger leur serveur. –