C'est avec Axis que j'avais testé ça, mais comme la fonction existe également dans Axis2, je suppose que tu peux l'utiliser de la même manière que je l'ai fait. Je te mets ce que j'ai fait pour Axis j'espère que tu arriveras à y voir plus clair ^^'
• axis.jar
• axis-ant.jar
• commons-discovery-0.2.jar
• commons-logging-1.0.4.jar
• jaxrpc.jar
• log4j-1.2.8.jar
• saaj.jar
• wsdl4j-1.5.1.jar
Ces librairies doivent être incluses dans ton projet .
Il faut aussi que la librairie activation.jar soit présente dans le dossier C:\tomcat\webapps\axis\WEB-INF\lib et C:\Program Files\Java\jre1.5.0_11\lib\ext .
Pour créer les classes du client, tu dois ouvrir l’invite de commande WINDOWS,te placer dans le dossier dans lequel tu veux retrouver ces classes (Remarque que ce dossier n’est pas de la plus grande importance puisque tu vas de toute manière déplacer ces classes pour les mettre dans dans ton projet) et taper la commande suivante :
java -classpath C:\chemindujar1/jar1.jar;C:\chemindujarX.jar org.apache.axis.wsdl.WSDL2Java AdresseDuWSDL
Voilà, donc tu inclus dans la commande le chemin de toutes tes librairies axis (je sais .. c'est un peu/beaucoup lourd à faire)
Une fois quetu as validé cette commande, vérifie qu’un dossier a bien été créé à l’endroit désiré, ce dossier porte le nom du package auquel les 4 classes générées appartiennent.
Parmi ces quatre classes, on retrouve :
• Interface NomDeVotreWebServicePortType qui contient la signature des méthodes que vous avez écrites dans votre service web.
• Classe NomDeVotreWebServiceHTTPBindingStub qui implémente l’interface ci-dessus et qui, entre autre, reprend le code des méthodes que vous avez écrites (ne pas oublier que ce code est issu du fichier WSDL, vous ne retrouvez évidemment pas votre propre code à l’intérieur).
• Interface NomDeVotreWebService qui contient, entre autres, la signature des méthodes permettant de localiser où chercher le web service.
• Classe NomDeVotreWebServiceLocator qui implémente l’interface ci-dessus. On retrouve l’adresse du fichier wsdl du web service dans l’attribut NomDeVotreWebServiceHttpPort_address. Les autres méthodes servent notamment à obtenir l’adresse du web service, les ports etc…
Pour appeler le web service, il te faut écrire une classe d’exécution. Afin de tester simplement, j’ai moi-même fait une simple classe Main.
Tout d’abord, il est nécessaire de faire des imports :
• import javax.xml.rpc.ServiceException
• import java.rmi.RemoteException
Ces deux imports sont nécessaires puisque des exceptions peuvent survenir avec l’utilisation d’un web service, RemoteException et ServiceException.
Il faut d’abord déclarer le web service en lui donnant comme type une localisation. Il faut ensuite déclarer un port, pour savoir exactement où trouver le web service que vous désirez utiliser. Une fois ceci fait, tu peux utiliser les méthodes du web service, grâce au port que vous avez déclaré.
Je me suis servie de ce site là pour faire mon main : http://karamimed.developpez.com/j2ee/tutoriels/axis/#LV-B
J'espère vraiment que ça pourra t'aider, je n'ai pas le temps de vérifier ça sous Axis2, je me suis dirigée vers un nouvel outil : CXF, j'essaie de le mettre en place là.
Fais moi savoir si tu as réussi à le faire !