====== 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 dans votre shell en tapant la commande 'source env.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
__Nota Bene__ : Cela est en fait suffisant pour installer son Service Web dans Axis, les stubs serveur étant générés dynamiquement !
====Déploiement du service web====
Créez les fichiers WSDD pour le déploiement "deploy.wsdd"
et "undeploy.wsdd". Vérifiez et complétez 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. Proposez une interface Web à base de Servlet/JSP (ou autre)
permettant d'utiliser votre service web à l'aide d'un formulaire HTML.
====Pour aller plus loin====
Cherchez sur Internet un exemple de Service Web, dont vous disposez du fichier WSDL et implantez un client Java utilisant ce service !