Publicité
+ Répondre à la discussion
Affichage des résultats 1 à 3 sur 3

Discussion: Utilisation de SoapUI

  1. #1
    Nouveau Membre du Club
    Inscrit en
    mai 2002
    Messages
    101
    Détails du profil
    Informations forums :
    Inscription : mai 2002
    Messages : 101
    Points : 25
    Points
    25

    Par défaut Utilisation de SoapUI

    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 :
    1
    2
    3
    4
    5
    6
     
          <soapenv:Fault>
             <faultcode>soapenv:Server</faultcode>
             <faultstring>unknown</faultstring>
             <detail/>
          </soapenv:Fault>
    Est-ce "normal" ? Y a-t-il un moyen de contourner le problème (autre que ré-ordonner les données et alimenter systématiquement une entrée du tableau avec des valeurs null) ?

  2. #2
    Modérateur
    Avatar de sinok
    Profil pro
    Inscrit en
    août 2004
    Messages
    8 756
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : août 2004
    Messages : 8 756
    Points : 11 827
    Points
    11 827

    Par défaut

    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.

  3. #3
    Nouveau Membre du Club
    Inscrit en
    mai 2002
    Messages
    101
    Détails du profil
    Informations forums :
    Inscription : mai 2002
    Messages : 101
    Points : 25
    Points
    25

    Par défaut

    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)

Liens sociaux

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •