Compte-rendu TP Systèmes répartis JAX-WS
Ce TP permet de découvrir la création et le déploiement de services web distribués utilisant le protocole SOAP via la technologie JAX-WS. Il guide l’étudiant dans l’écriture d’un service simple HelloWorld, puis dans la réalisation d’un service calculatrice plus avancé, avec des échanges d’objets Java sérialisés grâce à JAXB.
D'après le document Compte-rendu TP Systèmes répartis JAX-WS
Cet article a été rédigé automatiquement à partir du document source, puis vérifié avant publication.

Document source
Programming, Web Services, JAX-WS, SOAP · PDF · 11 pages · 2014
Afficher l'aperçu du document
Ce TP permet de découvrir la création et le déploiement de services web distribués utilisant le protocole SOAP via la technologie JAX-WS. Il guide l’étudiant dans l’écriture d’un service simple HelloWorld, puis dans la réalisation d’un service calculatrice plus avancé, avec des échanges d’objets Java sérialisés grâce à JAXB. Pour suivre ce TP, il faut disposer d’un environnement Java (JDK 8) sous Linux Ubuntu 14.04, d’un éditeur de texte et de l’outil SoapUI pour tester les services.
Objectifs
- Écrire un service web respectant le protocole SOAP.
- Implémenter un service web (calculatrice) avec JAX-WS.
- Tester l’implémentation du service via un client SOAP (SoapUI).
Prérequis et installation
- Système d’exploitation : Linux Ubuntu 14.04.
- Java Development Kit (JDK) version 8 installé.
- Éditeur de texte avec coloration syntaxique (exemple : SublimeText 3).
- Logiciel SoapUI version 5.1.3 pour tester les services SOAP.
- Connaissances de base en Java et en programmation orientée objet.
- Notions sur les services web et le protocole SOAP.
Réalisation du service HelloWorld
Cette étape consiste à créer un service web simple qui expose une méthode sayHello. Elle permet de comprendre la structure d’un service JAX-WS et la génération automatique du fichier WSDL.
- Créer l’interface du service dans le package
com.dhia.wsavec le fichierHelloWorld.java. - Implémenter cette interface dans
HelloWorldImpl.javasitué dans le même package. - Écrire la classe Publisher dans un second package
com.dhia.endpoint. Cette classe lie l’adresse du service à la classe d’implémentationHelloWorldImpl.
Compilation et lancement du service :
$ javac com/dhia/ws/*.java
$ javac com/dhia/endpoint/*.java
$ java com.dhia.endpoint.HelloWorldPublisher
Une fois lancé, le service génère automatiquement un fichier WSDL décrivant son interface.
Pour tester le service, deux options sont possibles :
- Développer un client Java pour invoquer le service.
- Utiliser SoapUI pour tester graphiquement le service sans écrire de code client.
Avec SoapUI, il faut créer un nouveau projet SOAP en fournissant l’URL du fichier WSDL généré par le service. SoapUI crée alors la structure du projet et permet d’envoyer des requêtes XML à la méthode sayHello du service.
Une requête XML typique et la réponse du service doivent s’afficher dans SoapUI, confirmant que le service fonctionne correctement.
Réalisation du service Calculatrice
Cette étape montre comment créer un service web plus complexe qui échange des objets Java via JAXB. Le service calculatrice reçoit un objet, effectue un calcul, puis renvoie un résultat.
- Définir l’objet Java à envoyer, nommé
RObject, avec ses propriétés, accesseurs (getters/setters) et annotations JAXB nécessaires. - Importer les bibliothèques JAXB requises pour la sérialisation des objets.
- Créer l’interface du service
RObjectServicequi déclare les méthodes exposées par le service calculatrice. - Implémenter cette interface dans une classe concrète qui réalise les opérations de calcul.
- Écrire la classe Publisher qui publie le service à une adresse réseau, similaire à l’étape HelloWorld.
Une fois le service lancé, SoapUI est utilisé pour envoyer des requêtes contenant des objets RObject sérialisés en XML. Le service traite ces objets et renvoie les résultats correspondants, également sous forme XML.
Résultats attendus
- Le service HelloWorld doit répondre à une requête
sayHelloavec un message de salutation correct. - Le fichier WSDL doit être généré automatiquement et accessible via l’URL du service.
- Le service calculatrice doit accepter un objet
RObject, effectuer le calcul demandé, et renvoyer un résultat conforme. - Les tests SoapUI doivent afficher les requêtes envoyées et les réponses reçues sans erreurs.
Erreurs courantes
- Ne pas compiler tous les fichiers Java avant de lancer le Publisher, ce qui empêche le démarrage du service.
- Oublier d’importer les bibliothèques JAXB nécessaires pour la sérialisation des objets, causant des erreurs à l’exécution.
- Fournir une URL incorrecte ou inaccessible dans SoapUI lors de la création du projet SOAP, empêchant la récupération du WSDL.
- Confondre les packages ou noms de classes, ce qui provoque des erreurs de compilation ou de liaison.
- Ne pas lancer le Publisher avant d’essayer de tester le service avec SoapUI, ce qui entraîne des échecs de connexion.
Commentaires
Aucun commentaire pour le moment. Posez la première question.