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
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
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.
non, seul l'inverse est possible
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
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.
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!Envoyé par ericw78
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.
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 coolEnvoyé par ericw78
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.
@+
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
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
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 !
Bonjour
POur ce qui est du pb de silverfab34 untruc du style:
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.
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);
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>
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) :Envoyé par ericw78
<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?)
Partager