This is an old revision of the document!
Table of Contents
TP3 : Exo Web Services
Il s'agit d'écrire un service web “AccountService” qui représente un service de compte banquaire offrant les opérations suivantes :
public interface Account { public void deposit(float amount); public void withdraw(float amount); public float balance(); }
Ce service devant conserver un état, il n'est pas possible d'utiliser
un service Web de type JWS dans ce cas Il va falloir réaliser un
déploiement de type WSDD.
Environnement
Créez le fichier “env.sh” et positionnez la variable ROOT comme il faut. Puis charger l'environnement Tomcat/Axis avec ce script.
- | env.sh
#!/bin/sh export ROOT=<???> export CATALINA_HOME=$ROOT/apache-tomcat-6.0.20 export PATH=$CATALINA_HOME/bin:$PATH export AXIS_HOME=$ROOT/axis-1_4 export AXISCLASSPATH=$AXIS_HOME/lib/axis.jar:$AXIS_HOME/lib/jaxrpc.jar:$AXIS_HOME/lib/commons-logging-1.0.4.jar:$AXIS_HOME/lib/commons-discovery-0.2.jar:$AXIS_HOME/lib/saaj.jar:$AXIS_HOME/lib/wsdl4j-1.5.1.jar export CLASSPATH=$AXISCLASSPATH:
Implantation du service web
Implantez trivialement l'interface “Account” dans la classe “AccountService”. Compilez votre service.
$ javac AccountService.java
Puis installez votre service web dans Axis :
$ cp AccountService.class $CATALINA_HOME/webapps/axis/WEB-INF/classes/
N'oubliez pas de rédémarrer le serveur web :
$ $CATALINA_HOME/bin/shutdown.sh ; $CATALINA_HOME/bin/startup.sh
Déploiement du service web
Editez maintenant les fichiers WSDD pour le déploiement “deploy.wsdd” et “undeploy.wsdd”. Vérifiez leur contenu.
Nota Bene : La ligne importante dans ce fichier est celle qui régit la durée de vie du service web (scope). Par défaut, celle-ci est réduite à la durée de vie d'une requête (value=“request”) ; mais on peut l'augmenter à la durée de vie de la session (value=“session”) ou de celle du serveur (value=“application”).
Pour effectuer le déploiement :
$ java org.apache.axis.client.AdminClient -h localhost -p 8080 deploy.wsdd
Après cela, le service web doit être visible à l'URL http://localhost:8080/axis/services et normalement accessible à l'URL suivante : http://localhost:8080/axis/services/AccountService
Pour terminer le service web, il suffit de taper :
java org.apache.axis.client.AdminClient undeploy.wsdd
Programmation du client
En vous inspirant de HelloWorldClient.java, écrire un client Java testant votre service.
Bonus
Pour terminer, proposez une interface Web à base de Servlet/JSP permettant d'utiliser votre service web.