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.

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

Document source

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

Programming, Web Services, JAX-WS, SOAP · PDF · 11 pages · 2014

Afficher l'aperçu du document

Consulter le document original →

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.

  1. Créer l’interface du service dans le package com.dhia.ws avec le fichier HelloWorld.java.
  2. Implémenter cette interface dans HelloWorldImpl.java situé dans le même package.
  3. Écrire la classe Publisher dans un second package com.dhia.endpoint. Cette classe lie l’adresse du service à la classe d’implémentation HelloWorldImpl.

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.

  1. Définir l’objet Java à envoyer, nommé RObject, avec ses propriétés, accesseurs (getters/setters) et annotations JAXB nécessaires.
  2. Importer les bibliothèques JAXB requises pour la sérialisation des objets.
  3. Créer l’interface du service RObjectService qui déclare les méthodes exposées par le service calculatrice.
  4. Implémenter cette interface dans une classe concrète qui réalise les opérations de calcul.
  5. É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 sayHello avec 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.

Partager

Commentaires

Aucun commentaire pour le moment. Posez la première question.

Les commentaires sont relus avant publication. Votre e-mail n'est jamais affiché.

← Toutes les révisions