IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Services Web Discussion :

Création d'un WS C# depuis un WSDL client


Sujet :

Services Web

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 7
    Par défaut Création d'un WS C# depuis un WSDL client
    Bonjour à tous,
    Dans le cadre d'un projet en C# exploitant un WS d'un client, je dois créée un web service sur nos serveurs ayant exactement le meme WSDL que notre client.
    Le but étant de faire la bascule entre le ws de notre client et notre ws pour nos tests fonctionnels.
    La bascule se fera juste en changeant l'url du endpoint.

    Donc j'ai le WSDL du ws de notre client et je voudrais avoir le squelette C# correspondant à un webservice que je pourrai publier sur nos serveur.
    J'ai déjà essayé de le faire avec wsdl.exe ou svcutil.exe mais je n'ai pas exactement le meme wsdl.

    A votre dispo

  2. #2
    Membre expérimenté
    Profil pro
    Inscrit en
    Février 2005
    Messages
    351
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Février 2005
    Messages : 351
    Par défaut
    Salut ladislasb,

    Si le service Web du client a été écris dans un autre language (Java), il es possible d'avoir des différences! Mais es-tu allé jusqu'au bout de la création de ta classe en utilisant wsdl.exe, puis csc.exe et faire une référence depuis ton service web sur cette classe?

    Cédric

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 7
    Par défaut
    Effectivement ! le WS de mon client a été fait en JAVA.
    De plus, le wsdl.exe ou svcutil.exe me font un proxy.
    Moi je veux un service web !
    En créant un service web depuis cette classe, j'ai un wsdl différent !
    Je suis en train de me tirer les cheveux

  4. #4
    Membre expérimenté
    Profil pro
    Inscrit en
    Février 2005
    Messages
    351
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Février 2005
    Messages : 351
    Par défaut
    Salut ladislasb,

    la différence que tu as dans le wsdl généré en c#, rapport au wsdl de JAVA, c'est quoi??? L'interprétation de type de données ou autre???

    Cédric

  5. #5
    Membre averti
    Inscrit en
    Octobre 2009
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Octobre 2009
    Messages : 23
    Par défaut
    Même problème.
    Nous développons le WebService en C# à partir du WSDL défini par l'appel WS. Cet appel est fait en Java, mais le WSDL a été rédigé à la main, en respectant les standards et avant tout développement.
    Lorsqu'on interprète le WSDL avec WSDL.exe pour C# il rajoute une balise supplémentaire dans la structure du message de réponse :

    - la structure devrait être :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
     
    <?xml version="1.0" encoding="utf-8"?>
    <soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
      <soap:Body>
        <getDroitsOptiqueResponse xmlns="http://xxx.xxx.xxx.xx">
            <tpoResponse>
              <beneficiaire xmlns="http://xxx.xxx.xxx.xx/xsd">
                <numTransaction xmlns="http://xxx.xxx.xxx.xx">string</numTransaction>
    ...
    ...
    ...
              </beneficiaire>
            </tpoResponse>
        </getDroitsOptiqueResponse>
      </soap:Body>
    </soap:Envelope>
    - mais elle est :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
     
    <?xml version="1.0" encoding="utf-8"?>
    <soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
      <soap:Body>
        <getDroitsOptiqueResponse xmlns="http://xxx.xxx.xxx.xx">
          <getDroitsOptiqueResult>
            <tpoResponse>
              <beneficiaire xmlns="http://xxx.xxx.xxx.xx/xsd">
                <numTransaction xmlns="http://xxx.xxx.xxx.xx">string</numTransaction>
    ...
    ...
    ...
              </beneficiaire>
            </tpoResponse>
          </getDroitsOptiqueResult>
        </getDroitsOptiqueResponse>
      </soap:Body>
    </soap:Envelope>
    - la différence :
    une balise d'encapsulation SOAP <getDroitsOptiqueResult> supplémentaire, qui correspond à la balise appelante <getDroitsOptique> avec le mot-clé "Result" ajouté en fin ! Alors que dans le WSDL on définit <getDroitsOptiqueResponse> qui apparaît également.

    Question :
    Comment obtenir la bonne structure de réponse sans la balise <getDroitsOptiqueResult> pour le WebService en C# ?

  6. #6
    Membre averti
    Inscrit en
    Juin 2010
    Messages
    32
    Détails du profil
    Informations forums :
    Inscription : Juin 2010
    Messages : 32
    Par défaut
    Bonjour,

    Est-ce que tu as bien exécuté la commande wsdl TonWSDL /l:CS /serverinterface lors de la génération de ton interface?

    Est-ce que tu fais bien implémenter ton service web à partir de cette interface?

  7. #7
    Membre averti
    Inscrit en
    Octobre 2009
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Octobre 2009
    Messages : 23
    Par défaut
    Je pense que oui (c'est pas moi qui dév), mais on vient de trouver la solution, il faut ajouter des informations dans la classe issue de l'exécution de WSDL.exe, pour "personnaliser" le nom de la méthode de retour. Quelques infos ici, sur la personnalisation des messages SOAP :
    - http://msdn.microsoft.com/fr-fr/libr...(v=VS.80).aspx
    - http://msdn.microsoft.com/fr-fr/libr...(v=VS.80).aspx

    En espérant que ça puisse aider les autres.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Création d'un WebService WCF depuis un fichier WSDL
    Par DotNetMatt dans le forum Services Web
    Réponses: 5
    Dernier message: 29/12/2010, 16h57
  2. Créer un WS depuis une WSDL et déployable sur JBoss
    Par yperey dans le forum Services Web
    Réponses: 5
    Dernier message: 07/04/2008, 12h44
  3. [Axis]Création d'un WebService à partir d'un wsdl
    Par broidsy dans le forum Tomcat et TomEE
    Réponses: 3
    Dernier message: 08/12/2006, 18h23
  4. [XSD] Générer un schéma depuis une WSDL?
    Par virgul dans le forum Valider
    Réponses: 2
    Dernier message: 12/10/2006, 07h45
  5. Réponses: 36
    Dernier message: 28/09/2005, 12h30

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo