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 :

Service web à partir d'un WSDL - procédure à suivre


Sujet :

Services Web

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Inactif  
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Août 2011
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2011
    Messages : 26
    Par défaut Service web à partir d'un WSDL - procédure à suivre
    Bonjour,

    Je précise que mon expérience en développement web et notamment en service web est assez misérable et que je débute en C#.

    Je dois développer une application devant utiliser un service web. Je n'ai pas accès à ce service web mais on m'a transmis un fichier wsdl qui d'après ce que j'ai compris décris ce fameux service. Ce wsdl permettrait aussi de générer le code du service web et donc de pouvoir faire mes tests (c'est tout au moins ce que j'ai compris via mes pérégrinations chez mon ami google....).

    J'ai donc utilisé une commande qui m'a généré un source C# :
    wsdl /language:CS monfichier.wsdl

    J'ai ensuite créé un projet service web dans visual studio et ais fait un copier coller du code du fichier source généré dans mon projet. J'ai ensuite lancé un debug du service web, je n'ai pas d'erreur mais les méthodes ne sont pas visibles. J'ai donc essayé de rajouter [WebMethod] juste avant les méthodes auxquelles je souhaitais accéder, à priori cela semble fonctionner puisque je vois mes méthodes (mais n'ai pas encore testé à partir de mon application). Cela dit je trouve ca plutot lourd de devoir chaque fois rajouter [WebMethod] devant chacune de mes méthodes, cela n'aurait pas du être automatiquement généré par la commande ci-dessus ?

    Autre chose, j'ai pu lire des truc ici et là sur net disant qu'il faut générer une dll à partir du cs pour tester le webservice. C'est ce que j'ai fait via cette commande :

    csc /t:library monfichier.cs

    Mais ensuite que dois-je faire de cette dll pour que toutes les méthodes soient accessibles ?

    Et surtout d'une manière générale ais-je suivi la bonne procédure ? existe-t-il une manière de faire plus "professionnelle" ?

    D'avance, un grand merci

  2. #2
    Expert confirmé
    Avatar de Immobilis
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2004
    Messages
    6 559
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 559
    Par défaut
    Salut,

    Le développement d'un service web avec visual studio est des plus simple. C'est peut-être parce que tu ne l'as jamais fait sur un autre langage que tu trouves cela fastidieux. Ajouter [WebMethod] n'est pas si pénible

    Citation Envoyé par Devko Voir le message
    cela n'aurait pas du être automatiquement généré par la commande ci-dessus ?
    Sauf erreur, la commande en question ne permet à ton application que de référencer le service pour l'utiliser dans ton code. Cela ne créé pas le web service. La classe que tu obtiens dispose de toutes les méthodes proposées par le service web.

    Citation Envoyé par Devko Voir le message
    existe-t-il une manière de faire plus "professionnelle" ?
    Il aurait été professionnel que ton client te donne accès à son service ou bien au moins à une version de développement. Si ce n'est vraiment pas possible qu'il te donne la liste des méthodes implémentées pour que tu puisses les implémenter localement.

    A+
    "Winter is coming" (ma nouvelle page d'accueil)

  3. #3
    Inactif  
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Août 2011
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2011
    Messages : 26
    Par défaut
    Tout d'abord merci pour ta réponse

    Citation Envoyé par Immobilis
    Le développement d'un service web avec visual studio est des plus simple. C'est peut-être parce que tu ne l'as jamais fait sur un autre langage que tu trouves cela fastidieux.
    Ce n'est pas que je trouve cela fastidieux mais pour moi si le wsdl contient la description d'un service web toutes les méthodes générées par la commande susmentionnée sont des webmethod donc pourquoi cet ajout n'est-il pas fait automatiquement... J'ai déjà travaillé dans un autre langage et sur un EDI concurrent (notamment sur des services web simplistes), chez ce concurrent cette manière de procéder ne m'aurait pas du tout étonné mais je suis tellement habitué à l'efficacité de visual studio que je suis étonné de rencontrer cette procédure à faire manuellement.

    Citation Envoyé par Immobilis
    Il aurait été professionnel que ton client te donne accès à son service ou bien au moins à une version de développement. Si ce n'est vraiment pas possible qu'il te donne la liste des méthodes implémentées pour que tu puisses les implémenter localement.
    Sauf erreur de ma part le wsdl contient justement la description des méthodes implémentées dans le service web.

    Voilà comment j'ai fait pour mes tests... une solution VS avec un projet qui contient le client, un autre projet de type dll qui contient la classe de mon web wervice (classe générée à partir du wsdl avec la commande wsdl) et un dernier projet qui contient le code du webservice, ce webservice référencant la dll du projet précédant... ainsi je ne modifie pas le cs originel (ajout de webmethod) car je met l'attribut webmethod devant les méthodes de mon webservice qui font appel aux méthodes de la dll (meme noms, memes parametres)... Je n'ai pas trouvé mieux.

    Cela dit c'est la galère car je n'ai pas le code des méthodes du coup, forcément je n'ai aucun retour.... Plutot aproximatif comme procédé, je me demande comment font les gens pour arriver à développer un truc fiable en ayant seulement le wsdl...


    a+

  4. #4
    Expert confirmé
    Avatar de Immobilis
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2004
    Messages
    6 559
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 559
    Par défaut
    Citation Envoyé par Devko Voir le message
    mais pour moi si le wsdl contient la description d'un service web toutes les méthodes générées par la commande susmentionnée sont des webmethod donc pourquoi cet ajout n'est-il pas fait automatiquement...
    Parce que le WSDL sert à décrire un service web pour le consommer par pour le recréer localement.
    Citation Envoyé par Devko Voir le message
    Sauf erreur de ma part le wsdl contient justement la description des méthodes implémentées dans le service web.
    Oui, pour le référencer en 3 clics dans Visual Studio.
    Citation Envoyé par Devko Voir le message
    Cela dit c'est la galère car je n'ai pas le code des méthodes du coup, forcément je n'ai aucun retour....
    C'est pour cela que je t'ai dit
    Citation Envoyé par Immobilis Voir le message
    Si ce n'est vraiment pas possible qu'il te donne la liste des méthodes implémentées pour que tu puisses les implémenter localement.
    Citation Envoyé par Devko Voir le message
    Cela dit c'est la galère car je n'ai pas le code des méthodes du coup, forcément je n'ai aucun retour.... Plutot aproximatif comme procédé, je me demande comment font les gens pour arriver à développer un truc fiable en ayant seulement le wsdl...
    Ben oui forcement, parce qu'on ne fait jamais comme ça... Ou alors ton client ne sait pas à quoi sert un WSDL... Il faut que tu simules un retour de valeur.

    A+
    "Winter is coming" (ma nouvelle page d'accueil)

  5. #5
    Inactif  
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Août 2011
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2011
    Messages : 26
    Par défaut
    Ok, en tout cas encore merci pour tes réponses j'en sais maintenant un peu plus.

    Je relance le client, en plein mois d'aout c'est pas gagné mais bon
    En attendant je vais simuler....

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

Discussions similaires

  1. Réponses: 0
    Dernier message: 08/05/2009, 16h35
  2. Réponses: 0
    Dernier message: 07/05/2009, 19h25
  3. Service web à partir d'un code Perl dans Eclipse3.4.2
    Par Mac2411 dans le forum Services Web
    Réponses: 0
    Dernier message: 07/05/2009, 16h41
  4. Accès d'un service Web à partir de SAP BI
    Par Cléopatre1 dans le forum SAP
    Réponses: 1
    Dernier message: 08/01/2009, 21h23
  5. Comment invoquer un service web à partir d'une servlet
    Par ramanov dans le forum Services Web
    Réponses: 1
    Dernier message: 02/06/2008, 00h21

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