Ecole Nationale des Sciences de l'Informatique
Compte-rendu de :
TP Systèmes répartis JAX-WS
Réalisé par :
Dhia Eddine Chouchane
Sayf Eddine Hammami
Année universitaire 2014/2015
Introduction :
Un service web est un programme informatique permettant la communication et l'échange de données
entre applications et systèmes hétérogènes dans des environnements distribués. Il s'agit donc d'un
ensemble de fonctionnalités exposées sur internet ou sur un intranet, par et pour des applications ou
machines, sans intervention humaine, de manière synchrone ou asynchrone.
SOAP est un protocole de communication de web services décrit en XML et standardisé par le W3C. Il
se présente comme une enveloppe pouvant être signée et pouvant contenir des données ou des pièces
jointes. Au cours de ce TP nous applicons SOAP par l'intermédiaire de JAX-WS
Objectifs :
• Ecrire un Web Service suivant le protocole SOAP.
•
Implementer un web service (calculatrice) avec JAX-WS et tester cette implémentation.
Réalisation :
1. Équippement et logiciels utilisés :
Publicité
Nous avons réalisé ce TP sur deux machines fonctionnant sous Linux Ubuntu 14.04 dotés du JDK 8.
Ces logiciels sont utilisés :
•
•
SublimeText 3 : Un éditeur de texte avec coloration syntaxique.
SoapUI 5.1.3 : Un utilitaire de test de services web utilisant SOAP.
2. Réalisation du service HelloWorld
Pour réaliser l'application Hello World nous avons commencé par créer le fichier d'interface
HelloWorld.java dans un premier package qu'on a nommé com.dhia.ws
Illustration 1: Interface du service (HelloWorld.java)
Ensuite nous avons implémenté cette interface dans le fichier HelloWorldImpl.java qui appartient au
même paquet que l'interface.
Illustration 2: Implémentation du service (HelloWorldImpl.java)
Puis nous avons écrit le Publisher dans un second paquet qu'on a appelé com.dhia.endpoint
Le publisher lie l'addresse qu'on a spécifié à la classe HelloWorldImpl.
Illustration 3: Implémentation du publisher (HelloWorldPublisher.java)
Maintenant on compile et on lance le service avec les commandes suivantes :
$ javac com/dhia/ws/*.java
$ javac com/dhia/endpoint/*.java
$ java com.dhia.endpoint.HelloWorldPublisher
Illustration 4: Compilation et execution du serveur HelloWorld
Publicité
Le service est maintenant lancé et un fichier WSDL est généré automatiquement :
Illustration 5: Fichier WSDL généré par le service
Maintenant nous pouvons procéder de deux manières :
1. Développer un cliet et tester ce code via le client.
2. Utiliser le logiciel SoapUI pour tester graphiquement le service.
Nous avons opté pour l'utilisation SoapUI ce qui nous évite d'écrire le code client. Pour ce faire on
lance un nouveau projet SOAP et on lui donne le lien du WSDL fournit par notre service comme dans
la figure suivante :
Illustration 6: Nouveau projet SoapUI
Ceci génère le projet suivant :
Illustration 7: structure du projet SoapUI de HelloWorld
On utilise “Request 1” pour envoyer une requête XML utilisant la méthode sayHello de notre service.
La figure suivante montre la requête et son résultat rendu par notre service.
Illustration 8: Requête et résultat de la méthode sayHello
Structure finale :
Illustration 9: structure finale du
serveur
3. Réalisation du service Calculatrice
On va utiliser JaxB pour envoyer des object java vers le service Calculatrice et puis on recupere le
resultat
1.
Publicité
l'object à envoyer Robject
•
bibliotheques a importer
Illustration 10: imports pour RObject
•
declaration
Illustration 11: declaration des proprietés
•
accesseurs
Illustration 12: implemenation des accesseurs
2.Interface du service
Illustration 13: Interface du RObjectService
3.Implementation de l'interface service
Illustration 14: Implementation du l'interface partie
4.classe Publisher
Illustration 15: Implementation de publisher
5. test avec SOAPUI
Illustration 16: Test du service