====== 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 !