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
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?)
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>
C'est bon, j'ai resolu mon souci !
Pour creer mon fichier xml, j'ai utilisé des :
InputStream
FileOutputStream
BufferedReader
BufferedWriter
et pour effacer le contenu ma chaine de caractere, j'ai fait des substring !
Bonjour à tous,
je viens de lire ce topic et ça m'interesse bcp,
je réalise une application pour la composition de services web,le résultat de la composition est un fichier wsdl qui décrit le processus global, ayant une seule operation à exécuter que j'ai nommé "process", les entrées et les sorties du service somposite c'est l'utilisateur de mon système qui les définit et peuvent etre simples ou de type complexe (voir ci-joint un exemple de WSDL)
j'arrive maintenant à l'exécution du service composite créé, qui doit se faire de manière automatique, sachant que je dispose que du wsdl à l'adresse :
http://localhost:8080/active-bpel/se...MyProcess?wsdl
comment je dois générer une page web (Jsp ou ...) contenant un formulaire des entrées du service composite, et avec un bouton "invoke" j'invoque le service puis je retourne le résultat dans une nouvelle page web?
est ce que je dois utiliser XSLT?
est ce que WSIF répond à mes besoins? ou alors wsdl4j?
Je vous remercie d'avance!
c'est pour un projet de fin d'études!
Bonjour,
Eclipse peut générer des pages JSP permettant de tester un service web grâce au contrat WSDL du service en question (le framework utilisé par défaut par Eclipse est Axis).
Pour cela, tu dois créer un projet web de type Dynamic Web Project, puis y créer un Web Service Client. En indiquant l'URL du contrat WSDL et en choisissant Test client, Eclipse va générer plusieurs pages JSP qui pourront peut-être te fournir un point de départ pour un client web plus perfectionné.
D'abor merci pour votre réponse,
oui j'ai déja essayé cela, grace à wsdl2java eclipse crée le client pour invoquer un service web mais moi je voudrais le réaliser à partir de mon application java, genre l'utilisateur choisit un service, je lui affiche la page pour l'invocation! mais comment le faire dynamiquement?
En gros, tu cherches à mettre en place une découverte dynamique des services web disponibles ?
Si c'est bien ça, tu peux peut-être chercher du côté de WS-Inspection, WSIL ou éventuellement UDDI, mais je ne saurais t'aider davantage là-dessus...
Partager