LudowikiFormations   Formation Java WebServices
 

Accueil > Formations > WebServices

TD 1 : Un webservice simple : UpperCase

Introduction

Dans ce TD nous developperons un webservice simple capable de renvoyer la version en majuscule d'une chaine envoyee par le client lors de l'appel du webservice.

Nous devrons d'abord developper le webservice, en Java et en generant quelques fichiers XML, et ensuite deployer le webservice dans un conteneur de webservice, installe dans le TD de preparation.

Developpement du webservice

Pour developper notre webservice en Java nous suivrons la trame suivante:

La plupart des etapes de developpements sont automatisees par l'utilisation d'outils comme Wsdl2Java qui generent automatiquement des squelettes de classes Java pour un webservice donne.

Par ailleurs nous utiliserons Ant pour automatiser la plupart des taches.

Pour realiser le projet, il faut creer une structure de repertoire comme decrit ci apres:

/ 
|-apache
| `...
`-webservices
`-td1
|- build
|- dist
|- src
|- build.properties
`- build.xml

Il faut aussi telecharger le fichier Ant du projet et le fichier de proprietes du fichier Ant:

build.xml build.properties

L'exemple a ete realise en utilisant comme nom de package fr.iutnice.lpmi.ws.td1. Il est conseille d'utiliser le meme.

Etape 1 : Creation de l'interface Java et de la classe d'implementation

Dans cette etape, il faut creer les classes Java charge de realiser le webservice, en l'occurence transformer une chaine en majuscule, nommee UpperCase dans cet exemple.

Il nous faut developper une interface qui contient les signatures de methodes accessibles par le webservice et une classe d'implementation de cette interface.

Pour des raisons de commdodites, l'interface UpperCase doit respecter les conventions RMI :

Note: Si l'interface ne respectait pas d'emblee les conventions RMI, c'est l'outil de generation de code (Wsdl2Java) qui genererait une interface RMI a partir de notre interface de depart.

Creer l'interface UpperCase.java, contenant les signatures de methodes pour accomplir le service demande.

Creer la classe d'implementation UpperCaseImpl.java, qui implemente les methodes declarees dans l'interface.

Etape 2 : Creer le descripteur de service WSDL avec Java2WSDL

Apres avoir developpe les classes Java, il faut generer un fichier WSDL a partir de l'interface cree precedemment avec l'outil Java2Wsdl.

Le fichier WSDL sera utilise par les clients pour communiquer avec le webservice :

Le fichier WSDL genere contiendra les elements WSDL appropries :

Tout le necessaire pour utiliser le webservice et le decrire aupres des clients.

Si les methodes de l'interface font reference a d'autres classes, Java2WSDL generera les types XML appropries pour representer ces classes et les types imbriques/herites. Cet outil supporte les types JAX-RPC complexes (Javabeans), classes heritees, enumerations, tableaux et les Holder(?).

Il existe aussi une tache Ant pour integrer Java2WSDL dans Ant. C'est cette fonctionnalite qui est utilisee dans le fichier build.xml.

Pour generer le fichier WSDL, utiliser la commande suivante dans le repertoire webservices/td1:

ant generate-wsdl 

Le fichier WSDL doit avoir ete genere dans le repertoire build.

Generations de talons Java pour le webservice avec Wsdl2Java

A partir du fichier WSDL il est possible de creer les talons clients et serveur appropries pour le webservice avec la commande Wsdl2Java.

Pour notre usage, le fichier build.xml est configure pour generer pour nous les classes en tapant la commande:

ant generate-java 

Ce qui genere les fichiers suivants dans le repertoire build/src:

Maintenant que tous ces fichiers ont ete crees, tout est pret pour utiliser le webservice.

Prenez le temps de regarder comment sont ecrits ces fichiers puis passer a la suite.

Compilation et packaging

Executer la cible build du fichier build.xml:

ant build 

A l'issue de cette commande le repertoire dist doit contenir un fichier ws-td1.jar.

Deploiement du webservice

Il faut maintenant installer le webservice dans Tomcat.

Pour cela executer la cible deploy du fichier build.xml:

ant deploy 
Cette cible copie le fichier JAR dans le repertoire apache/tomcat/webapps/axis/WEB-INF/lib et declenche l'installation du webservice aupres d'Axis.

Test du webservice

Normalement le webservice doit etre affiche dans la liste des webservices installes, a l'adresse [Nouvelle fenêtre][WWW]http://127.0.0.1:8080/axis/servlet/AxisServlet.

Tester le webservice: http://127.0.0.1:8080/axis/services/ws-td1?method=uppercase&in0=toto