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 Java Discussion :

[AXIS] Obtenir le WSDL d'un service depuis le code ...


Sujet :

Services Web Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2004
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 57
    Par défaut [AXIS] Obtenir le WSDL d'un service depuis le code ...
    Bonjour,

    Est-il possible d'obtenir le WSDL d'un WS à partir du code, de façon à ensuite invoquer dynamiquement et automatikement les opérations.

    PS: J'ai AXIS comme client WS.

    Merci beaucoup,

    Fab

  2. #2
    Membre chevronné

    Inscrit en
    Avril 2005
    Messages
    317
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 317
    Par défaut
    Je cherche à faire la même chose...
    Moi j'ai l'idée de lire le flux xml du wsdl. On obtient ainsi les opérations du web service, les params d'entrée et de sortie.

  3. #3
    Membre confirmé
    Inscrit en
    Décembre 2002
    Messages
    186
    Détails du profil
    Informations forums :
    Inscription : Décembre 2002
    Messages : 186
    Par défaut
    non, seul l'inverse est possible

  4. #4
    Membre chevronné

    Inscrit en
    Avril 2005
    Messages
    317
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 317
    Par défaut
    mauvais_karma, peux-tu péciser ta remarque ?
    Qu'est ce qui m'empeche de lire le flux wsdl (c'est du xml) et d'en déduire les méthodes du webservice

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    75
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 75
    Par défaut
    Bonjour tout le monde

    Ca semble être le topic des questions réponses claires et précises ici

    Bon alors je ne sais pas si j'ai bien compris la question de l'instigateur de ce topic, mais il me semble qu'un package d'Axis propose une classe nommée Java2WSDL qui à partir du code Java de ton service te créé le fichier WSDL qui va bien.

    Par contre pour ta question eric, je comprends pas trop. Tu dis que tu souhaite faire la même chose, mais ça me semble être l'opposé que tu veux faire, à savoir à partir du WSDL obtenir des classes java. Si c'est ça, dans le même package on a une classe WSDL2Java qui te créé toutes les classes dont tu as besoin pour consommer le WebService correspondant au fichier WSDL fourni.

    Si c'est autre chose que tu souhaites faire, des explications plus poussées seraient souhaitables pour pouvoir te répondre.

  6. #6
    Membre chevronné

    Inscrit en
    Avril 2005
    Messages
    317
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 317
    Par défaut
    Merci ArseNic pour ton aide

    Ce que je cherche à faire, c'est une petite appli j2ee qui à partir de la lecture du fichier wsdl d'un webservice :
    - me liste/affiche les méthodes disponiblent
    - en sélectionnant une des méthode de la liste, je génére un formulaire html qui me permettra de saisir les paramétres de la méthode sélectionnée.
    - en validant le formulaire, j'affiche les infos obtenues en retour de l'appel de la méthode (affichage brute des infos : ce sera du xml)
    Note : Le webservice sera généré avec Axis

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    75
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 75
    Par défaut
    Citation Envoyé par ericw78
    Merci ArseNic pour ton aide

    Ce que je cherche à faire, c'est une petite appli j2ee qui à partir de la lecture du fichier wsdl d'un webservice :
    - me liste/affiche les méthodes disponiblent
    - en sélectionnant une des méthode de la liste, je génére un formulaire html qui me permettra de saisir les paramétres de la méthode sélectionnée.
    - en validant le formulaire, j'affiche les infos obtenues en retour de l'appel de la méthode (affichage brute des infos : ce sera du xml)
    Note : Le webservice sera généré avec Axis
    Salut eric!

    Wahou ça m'a l'air bien compliqué à faire ton appli...
    Ca dépasse le champ de mes compétences (relativement modestes sur les webServices il faut l'avouer). Faire tout ce que tu souhaites dynamiquement doit être possible mais au prix de sacrés efforts je pense. Si au jour d'aujourd'hui on me demandait de faire la même chose que toi, je dirais qu'il faudrait tout se faire à la main.

    Pour récupérer le nom des opérations d'un service, c'est pas compliqué y a une méthode pour ça (me souviens plus son nom un truc comme getWebServices).
    Par contre pour récupérer la signature d'une méthode...
    Si on pouvait chopper ça sous forme de String je pense que ça serait possible d'écrire une méthode pour la parser et ainsi isoler le nombre d'arguments et leurs types (ça me semble quand même bien chiant à faire). Ou alors à la limite dès qu tu as le nom des opérations il doit être possible d'aller parcourir le fichier WSDL aux endroits concernant ces méthodes et d'extraire les infos...

    En ce qui concerne le retour des infos en tant que flux XML je ne sais pas si c'est possible, mais si ça l'est, je serais curieux de savoir comment faire (pense à moi si tu trouve comment faire)

    Bref ton projet m'a l'air ambitieux, sans doute pas infaisable, mais ça me semble être quelquechose qui prendra pas mal de temps à faire.
    Enfin si quelqu'un d'autre voit des moyens faciles de faire ça qu'il se manifeste, je souhaiterai pour toi que je me trompe.

    Allez bon courage, et tiens nous au courant.

  8. #8
    Membre chevronné

    Inscrit en
    Avril 2005
    Messages
    317
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 317
    Par défaut
    ok bon je viens de tester WSIF et la classe DynamicInvoker fait exactement ce que je veux
    Je viens de gagner 3 jours de boulot

    J'ai plus qu'a me faire 2/3 pages jsp et hop c'est fini
    Merci à tous

  9. #9
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    75
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 75
    Par défaut
    Citation Envoyé par ericw78
    ok bon je viens de tester WSIF et la classe DynamicInvoker fait exactement ce que je veux
    Je viens de gagner 3 jours de boulot

    J'ai plus qu'a me faire 2/3 pages jsp et hop c'est fini
    Merci à tous
    Bon bah c'est cool
    Je ne connaissais pas cet outil.
    Par contre comment fais tu pour récupérer uniquement la structure XML du retour de tes web Services? Ca m'interresserai de pouvoir le faire.
    @+

  10. #10
    Membre chevronné

    Inscrit en
    Avril 2005
    Messages
    317
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 317
    Par défaut
    En fait, la classe DynamicInvoker utilise une méthode différente et j'ai plus besoin d'aller lire le flux wsdl.
    Qu'entend tu par "récupérer uniquement la structure XML du retour de tes web Services" ? Tu veux réceupérer le fichier wsdl ?
    Car dans ce cas, il te suffit d'appeller ton webservice http://..../monwebservice?wsdl

  11. #11
    Invité de passage
    Inscrit en
    Février 2007
    Messages
    1
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 1
    Par défaut demande d'aide
    bonjour je suis étudiante et je dois réaliser un projet qui fait de la découverte et de l'invocation dynamique d'un serv ice web
    j'ai lu la classe DynamicInvoker de wsif mais je n'ai malheureusement pas compris grand chose à cette classe ni comment l'utiliser
    je vous demande donc de m'expliquer et de me donner quelques indication sur comment invoquer un service web dynamiquement
    merci

  12. #12
    Membre confirmé Avatar de silverfab34
    Inscrit en
    Mars 2006
    Messages
    203
    Détails du profil
    Informations personnelles :
    Âge : 45

    Informations forums :
    Inscription : Mars 2006
    Messages : 203
    Par défaut
    Bonjour,
    Votre sujet m'interesse (je sais 2 ans après lol).
    A partir de ma reponse SOAP, j'aimerais creer un fichier XML avec le contenu de cette reponse !

    En gros :
    J'ai ma classe java qui execute le webservice (j'utilise AXIS), l'objet "reponse" que je renvois dans cette classe, son contenu , j'aimerais le mettre dans un fichier XML !

    Merci pour votre aide, bonne fin de journée !

  13. #13
    Membre éprouvé

    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    105
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 105
    Par défaut
    Bonjour

    POur ce qui est du pb de silverfab34 untruc du style:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    ByteArrayOutputStream out=new ByteArrayOutputStream();
    MessageContext.getCurrentContext().getCurrentMessage().writeTo(out);
    System.out.println(out);
    Pour le reste les pistes éventuelles sont wsdl4j pour le parsing du wsdl, qui va permettre de parser le fichier wsdl et déterminer les opérations.
    Il faut aussi analyser le schema pour générer les formulaires, et les messages. pour cela, il faut utiliser soit XmlSchema http://ws.apache.org/commons/XmlSchema/index.html
    soit xmlbeans http://xmlbeans.apache.org/
    Une piste pourcela est dispo dans les sources de soapui: http://www.soapui.org/
    Mais l'approche de formulaire dynamiques est complexe surtout si il faut gérer des tableaux d'objets.

  14. #14
    Membre confirmé Avatar de silverfab34
    Inscrit en
    Mars 2006
    Messages
    203
    Détails du profil
    Informations personnelles :
    Âge : 45

    Informations forums :
    Inscription : Mars 2006
    Messages : 203
    Par défaut
    Citation Envoyé par willy78 Voir le message
    Bonjour

    POur ce qui est du pb de silverfab34 untruc du style:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    ByteArrayOutputStream out=new ByteArrayOutputStream();
    MessageContext.getCurrentContext().getCurrentMessage().writeTo(out);
    System.out.println(out);
    Pour le reste les pistes éventuelles sont wsdl4j pour le parsing du wsdl, qui va permettre de parser le fichier wsdl et déterminer les opérations.
    Il faut aussi analyser le schema pour générer les formulaires, et les messages. pour cela, il faut utiliser soit XmlSchema http://ws.apache.org/commons/XmlSchema/index.html
    soit xmlbeans http://xmlbeans.apache.org/
    Une piste pourcela est dispo dans les sources de soapui: http://www.soapui.org/
    Mais l'approche de formulaire dynamiques est complexe surtout si il faut gérer des tableaux d'objets.

    Bonjour et merci , j'avais trouvé une methode ....par contre je suis à la recherche d'une methode pour effacer les balises SOAP comme :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    <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>

  15. #15
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    75
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 75
    Par défaut
    Citation Envoyé par ericw78
    En fait, la classe DynamicInvoker utilise une méthode différente et j'ai plus besoin d'aller lire le flux wsdl.
    Qu'entend tu par "récupérer uniquement la structure XML du retour de tes web Services" ? Tu veux réceupérer le fichier wsdl ?
    Car dans ce cas, il te suffit d'appeller ton webservice http://..../monwebservice?wsdl
    Non, imaginons que tu manipules un type complexe en retour de ton webService, décrit comme suit dans le WSDL (là c'est du pseudo WSDL) :

    <complex type = monTypeComplexe>
    <monAttribut1 : type String/>
    <monAttribut2 : type int/>
    </complex type>

    Comment faire pour récupérer ce retour sous sa forme XML, et pas sous sa forme objet java? (est ce possible déja?)

Discussions similaires

  1. Web service depuis un fichier wsdl
    Par pere_noel00 dans le forum Services Web
    Réponses: 1
    Dernier message: 10/07/2009, 15h27
  2. Problème d'utilisation d'Axis avec des WSDL
    Par Tino13 dans le forum Services Web
    Réponses: 2
    Dernier message: 31/03/2007, 10h09
  3. Réponses: 2
    Dernier message: 24/03/2007, 12h11
  4. [WebService][WSDL] Generation de WSD depuis du C (ou autre)
    Par chronos dans le forum XML/XSL et SOAP
    Réponses: 1
    Dernier message: 05/01/2007, 17h02
  5. Réponses: 5
    Dernier message: 19/05/2006, 15h22

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