-
client web service
Bonjour tout le monde,
J'ai developpé un web service avec eclipse3.1 et wtp. mon web service à 3 méthodes, affiche qui return un String, calcul qui return un int et renvoie_perosonne qui return un object Personne
dans mon client web service je fais apelle à ces méthodes.
avec les deux premières qui return les types simples j'ai aucun problème,par contre quand je veux récupérer mon objet personne ça plante.
Si quelq'un à une idée. Merci
voici les appelles des méthodes,
TestProxy WSid = new TestProxy();
String s = WSid.affiche();
int a=WSid.calcul();
(Personne)WSid.renvoie_personne()).getNom();
:?:
-
Est ce que cet objet personne est bien décrit dans ton WSDL ?
Car dans le cas contraire cela signifie tout simplement que ton client ne sait pas comment est composé ton objet.
-
eclipse 3.1 et/ou WTP ne sait pas générer la partie cliente?
-
Comme l'a dit yolepro, dans le but de pouvoir manipuler la réponse renvoyée par le serveur, il faut que le client possède lui aussi une implémentation des classes renvoyées par le serveur. Donc, il faut que tu aies une classe Personne (si possible la même sinon ca ne fonctionnera pas). C'est un peu comme lorsque tu veux consommer un web service :google:, il faut que tu télécharges auparavant son API :D
Si jamais tu avais déjà fait cela, et bien, vérifie ton WSDL ... au cas où mais je ne pense pas que ce dernier soit mal fait :P, surtout si il est généré automatiquement ^_^
-
Personnellement je n'ai pas réussi à générer un web service avec Eclipse WTP qui gère automatiquement des java beans. J'ai ajouté à la main au fichier deploy.wsdd la balise pour que Axis fasse le mapping de ma classe Bean (dans ton cas la classe Personne)...
Code:
<beanMapping qname="myNS:MaClasseBean" xmlns:myNS="urn:MonWebService" languageSpecificType="java:test.MaClasseBean"/>
L'autre solution est effectivement d'ajouter soi-même dans le WSDL le mapping entre ta classe et le XML. Mais je ne me suis pas lancé là dedans.
Nico