User Tools

Site Tools


sysrep:tp3

This is an old revision of the document!


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 :

Account.java
  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

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.

deploy.wsdd
<deployment xmlns="http://xml.apache.org/axis/wsdd/"
	    xmlns:java="http://xml.apache.org/axis/wsdd/providers/java">
 
  <service name="AccountService" style="RPC">
    <parameter name="className" value="AccountService"/>
    <parameter name="scope" value="???"/>	
    <parameter name="allowedMethods" value="*"/>
  </service>
 
</deployment>
undeploy.wsdd
<undeployment xmlns="http://xml.apache.org/axis/wsdd/">	
  <service name="AccountService" />
</undeployment>

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 permettant d'utiliser votre service web.

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 !

sysrep/tp3.1353516285.txt.gz · Last modified: 2024/03/18 15:05 (external edit)