Ecrire un client d’un Web-Service en java
Je veux écrire un client du Web-Service “globalweather” (Un service de météo).
http://www.webservicex.net/globalweather.asmx?wsdl
La démarche est la même pour n’importe quel Web-Service dont on connait le wsdl.
Pour examiner ce Web-Service à la main, on peut utiliser un client SOAP générique, par exemple celui ci: http://www.soapclient.com/soaptest.html
Il suffit alors de lui indiquer l’url du wsdl “globalweather” pour voir les méthodes accessibles.On remarque la méthode “getWeather” qui retourne …. la méteo (par exemple : CityName : Toulouse, CountryName:France).
Pour écrire un client java de ce Web-Service, il faut utiliser l’utilitaire “wsimport”. Cet utilitaire se trouve dans le directory bin du jdk, “wsimport.exe”.
“wsimport” permet de générer les classes et les sources java d’un client au Web Service.
Ensuite, il faut invoquer ces classes: C’est vraiment simple. Tout a été conçu pour simplifier la vie au développeur.
Personellement, je prefère l’invoquer à travers une tache ant, voilà le contenu du fichier build.xml:
- <project name=“testWS” default=“bg-generate-client-artifacts”>
- <target name=“bg-generate-client-artifacts” depends=“”>
- <mkdir dir=“classesGenerated”/>
- <mkdir dir=“srcGenerated”/>
- <exec executable=“wsimport” failonerror=“true”>
- <arg line=” -d classesGenerated”/>
- <arg line=” -keep”/>
- <arg line=” -s srcGenerated”/>
- <arg line=” http://www.webservicex.net/globalweather.asmx?wsdl”/>
- </exec>
- </target>
- </project>
Et c’est tout!
Faites exécuter par ant ce fichier build.xml, et observez les directory créés et leurs contenus: Vous verrez les sources d’un coté et les classes de l’autre.
si certains préfèrent utiliser les fichiers de commandes voilà le même exemple pour windows (Vous pouvez soit taper les commandes dans un fenêtre de commande, soit mettre ces lignes dans un fichier .bat):
mkdir classesGenerated
mkdir srcGenerated
wsimport -d classesGenerated -keep -s srcGenerated http://www.webservicex.net/globalweather.asmx?wsdl
pause
Examinons les classes générées:
Elles sont dans le package “net.webservicex” (logique, rien à dire!). On peut voir la classe “GloabaWeather” et l’interface “GlobalWeatherSoap” qui comporte des méthodes qui nous interessent..
Bien sûr, il faut mettre les classes générées dans le classpath ….
- package bg.test.ws;
- import net.webservicex.GlobalWeather;
- import net.webservicex.GlobalWeatherSoap;
- public class MainTestWS {
- GlobalWeather globalWeather = new GlobalWeather();
- GlobalWeatherSoap gws = globalWeather.getGlobalWeatherSoap();
- }
- }
Voilà c’est tout. Dans le prochain tutoriel vous apprendrez à créer votre propre web-service.
antoine.guiral.info
bertrand.guiral.info
ertrand Guiral : formateur et consultant
















Laissez un commentaire