|
Publicité ' | ||||||||||||||||||||||
|
|
#1 | ||
|
Nouveau Membre du Club
![]() Inscription : mai 2002 Messages : 100 ![]() |
Bonjour.
J'utilise soapui afin de tester mes webservices. Cela fonctionne très bien si je valorise mes données directement dans les requêtes générées par soapui. Par contre, quand je modifie l'ordre des données, cela ne fonctionne plus du tout. De même si je supprime des paramètres optionnels. Ex : <ser:idCompany>001</ser:idCompany> <ser:idThird>TOTO</ser:idThird> <ser:externalReference></ser:externalReference> (d'autres paramètres suivent..) Si je supprime externalReference, toutes les valorisations des paramètres qui suivent sont décalées. Si je le déplace avant idThird, c'est externalReference qui va valoir TOTO dans mon service. De même, mais encore plus gênant, si je supprime un tableau de paramètre (facultatif) c'est soapui qui plante (si ce tableau n'est pas en dernière position dans mon service). Code :
|
||
|
|
00
|
|
|
#2 |
![]() ![]() Inscription : août 2004 Messages : 8 633 ![]() |
Tout dépend de comment sont fait(s) le(s) schéma(s) XML sur lequel s'appuie le WSDL que tu utilises.
Ce n'est pas un problème lié à SoapUI en lui même, cela vient plutôt du fait que tu ne respectes pas le contrat définit au niveau de ton WSDL. Donc, le web service de l'autre côté n'aime pas du tout le message que tu lui envoie, donc il te revoie une erreur(SOAPFault). A savoir que, quand on définit un type complex (complexType)dans un xsd, pour spécifier les balises enfant on utilise en général une séquence (xsd:sequence), or, une séquence implique que les tags du fichier XML doivent respecter l'ordre dans lesquels ils sont définit dans le schéma XML. De même pour les paramètres optionnels, si ils sont en minOccurs=0 tu peux ne pas les inclure dans ton XML, autrement, tu es obligé de les inclure, même si ils sont vides.
__________________
Hey, this is mine. That's mine. All this is mine. I'm claiming all this as mine. Except that bit. I don't want that bit. But all the rest of this is mine. Hey, this has been a really good day. I've eaten five times, I've slept six times, and I've made a lot of things mine. Tomorrow, I'm gonna see if I can't have sex with something. |
|
|
00
|
|
|
#3 |
|
Nouveau Membre du Club
![]() Inscription : mai 2002 Messages : 100 ![]() |
Merci pour ta réponse.
En effet, dans mon wsdl j'ai bien un xs:sequence sous mon complexType Par contre, c'est axis qui génère mon wsdl. Est-il possible de spécifier des balises enfant sans définir de séquence? Est-il possible de forcer Axis à générer un wsdl sans séquence? Concernant les paramètres optionnels, j'ai bien minOccurs=0 mais ils sont inclus dans la séquence. Du coup, ce doit être le même problème.. RQ : J'ai remplacé manuellement sequence par all ou choice (dans le wsdl généré par axis que j'ai copié dans un fichier). Je l'ai donné à manger à soapui mais j'ai le même problème que précédemment (décalage dans les données envoyées lorsque j'appelle le WS) |
|
|
00
|
Copyright © 2000-2013 - www.developpez.com