Compte-rendu TP Systèmes répartis JAX-WS

Page 1 sur 11Lecteur de document UniversityLib

Compte-rendu TP Systèmes répartis JAX-WS

Programming, Web Services, JAX-WS, SOAP · lab

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