Feuille de TP services web

publicité
Université Cergy-Pontoise
Formation SAGEM
Services web
Travaux pratiques
1. Création de service web
Nous utiliserons l’API JAX-WS avec un serveur d’applications Java, déjà installés sur votre
machine. Le principe est d’écrire un service comme une classe Java dont une partie des
méthodes sont les opérations du service. Exemple simple : le programme Calcul.java sur la
page du cours http://depinfo.u-cergy.fr/~vodislav/SAGEM/.
Etapes :
1. Lancez le serveur d’applications Java Application Server sur votre machine avec la
commande :
asadmin start-domain domain1
2. Téléchargez sur votre machine l’archive du tutoriel JAX-WS, disponible sur le site du
cours. Il contient tous les fichiers de configuration nécessaires pour construire un
service web. Extrayez les fichiers de cette archive dans votre répertoire d’accueil, ce
qui créera un répertoire jwstutorial20.
3. Dans le sous-répertoire examples/common du tutoriel, modifiez le fichier
build.properties en renseignant les valeurs des propriétés javaee.home=/persist/j2ee/ et
javaee.tutorial.home=le chemin complet vers votre tutoriel (par exemple
/home/etud01/ jwstutorial20/)
4. Dans le sous-répertoire examples/jaxws, faites une copie du répertoire helloservice
vers un répertoire appelé calculservice, qui servira à la création du service Calcul.
5. Dans le sous-répertoire src de calculservice, remplacez le fichier Hello.java par
Calcul.java, récupéré depuis le site du cours.
6. Dans le fichier build.properties de calculservice, remplacez dans les valeurs des
propriétés « hello » par « calcul » (example=calculservice, war-file=calcul-jaxws.war,
…). Faites la même chose dans les trois fichiers XML de configuration, présents dans
le sous-répertoire etc de calculservice.
7. Dans la fenêtre de commande, placez vous dans calculservice et lancez la commande :
asant build
qui crée les fichiers du service web dans un sous-répertoire build, ensuite :
asant create-war
qui crée l’archive web du service (fichier .war) dans un sous-répertoire assemble.
8. Pour déployer le service Calcul, copiez le fichier calcul-jaxws.war du sous-répertoire
assemble/war vers le répertoire /persist/j2ee/domains/domain1/autodeploy.
9. Si le service est bien déployé, sa description WSDL est visible à l’adresse
http://localhost:8080/calculservice/CalculService?WSDL. Identifiez dans cette
description la structure des messages d’appel et de retour, ainsi que l’adresse (URL)
d’appel du service.
10. Testez le fonctionnement du service à l’aide de la page de test fournie par le serveur à
l’adresse http://localhost:8080/calculservice/CalculService?Tester. Observez bien la
structure des messages SOAP d’appel et de réponse.
2. Appel de service web
A. Utilisation de SOAP en Java
L’appel de service est réalisé à travers un message SOAP d’appel envoyé au service, suivi de
l’interprétation du message SOAP de réponse.
Créer un projet Java dans Eclipse et créer un package testclient dans ce projet. Copier dans ce
package le squelette de programme AppelSoap.java disponible sur la page du cours.
Remplacer dans ce squelette les parties en majuscules par les valeurs correspondantes
identifiées dans la description WSDL du service Calcul.
Exécuter ce programme et vérifier le résultat obtenu.
B. Utilisation de JAX-WS
L’appel est beaucoup plus simple, il se réduit à un appel de méthode sur un objet de la classe
qui réalise le service. Si le service a lui-même été créé avec JAX-WS (donc avec un objet
Java), alors l’appel du service revient à l’appel des méthodes de cet objet. Avantage : on reste
dans le modèle objet Java avec appels de méthodes sur des objets, la couche SOAP et la
manipulation des messages XML sont totalement cachées.
Il faut tout d’abord générer les classes proxy pour le service avec la commande :
wsimport -keep -verbose -d REPERTOIRE_CLASSES -s REPERTOIRE_SOURCES
-p NOM_PACKAGE ADRESSE_WSDL
Pour l’appel au service Calcul, utiliser pour les paramètres –d et –s le répertoire des sources
du projet Java Eclipse et pour –p le nom de package clientcalcul.
Copier dans le package testclient de votre projet Eclipse le squelette de programme
AppelJaxws.java disponible sur la page du cours. Remplacer dans ce squelette les parties en
majuscules par les valeurs correspondantes (le nom de la classe est ici Calcul).
Exécuter ce programme et vérifier le résultat obtenu.
Téléchargement