Maîtrisez le traitement à la volée des messages Soap échangés entre un client web service et le web Service. Comprenez la notion de Handler de Web service. Mettez en œuvre un handler en 3 étapes clés.
Objectif
Contexte : traiter le message SOAP à la volée coté client ou coté serveur
Partie 1 : Création d’un handler
Partie 2 : intégration du handler
Programme
Contexte : traitement de messages à la volée
Partie 1 : Création d’un handler
Partie 2 : intégration du handler
Contexte : traitement à la volée
Scénarios possibles :
— Sécurité (Encrypter / Décrypter un message)
— Logs
— Cache
— Transactions
Projet initial
Vous disposez d’un webservice Soap
Projet ‘demowebservice’
Après publication du service (Lancer classe HelloPublisher) , le wsdl est le suivant :
QUESTION 1 : dans quelle section du WSDL se trouve l’adresse d’accès au webservice ?
QUESTION 2 : en déduire une faille liée à la gouvernance de ce service.
Méthodologie : 8 étapes clés
1) Choisir ou interviendra l’intercepteur : coté client ou coté WebService
Si coté Serveur, alors le code de l’intercepteur fera partie du projet du WebService (c’est le cas dans ce tutoriel)
Si coté Client, alors le code de l’intercepteur fera partie du projet du client du WebService
2) Créer un package dédié aux intercepteurs (ici com.objis.demowebservices).
QUESTION : en utilisant l’API Jax-WS, expliquez le point commun et différence entre l’interface LogicalHandler et l’interface SoapHandler
Créer une classe qui implémente l’interface SOAPHandler (Ici SoapMessageHandler.java)
3) implémenter la méthode ‘handleMessage‘ de l’interface avec le traitement dédié à votre intercepteur. Ici le log du Message qui passe
4) Créer à la racine des sources un fichier de configuration XML vide qui recensera l’intercepteur
5) Déclarer l’intercepteur dans le fichier
6) Associez l’intercepteur au Webservice dans le code du WebService
7) Déployer le Webservice (Exécuter helloPublisher)
Vérifier que le port est bien occupé :
8) accédez au WebService à partir d’un client.
Vous devez constater l’effet de l’intercepteur dans la console.
Expliquez.
Conclusion
Vous avez mis en oeuvre un Intercepteur Soap basé sur la spécification Jax-WS.