Services Web
Transcription
Services Web
M2 SIS 2016-2017 Services Web Vous allez tester des services web existants. Ensuite, vous allez decouvrir comment developper, deployer un service web simple. Environnement de travail Environnement de developpement : IDE Netbeans ou Eclipse JDK 7 ou 8 Serveur Glassfish I. Test de services Web 1. Exemple d’une requête http pour récupérer un WSDL L’objectif est de vous montrer comment on peut recuperer un fichier WSDL seulement avec une requete HTTP. Pour cela, il est possible d’utiliser l’extension de Firefox : Poster. Vous allez : telecharger le module Poster sur Outils Poster et vous completerez le formulaire avec l’URL suivante : http://webservices.amazon.com/AWSECommerceService/AWSECommerceService.wsdl Cliquer sur GET. Le fait de cliquer sur GET provoque l’envoi d’une requete HTTP en utilisant la methode GET. Une nouvelle fenetre s’ouvre avec la reponse a la requete GET. Les informations sont renvoyees au format XML et represente la definition WSDL du Web service Amazon. Examiner le contenu 2. Tester un service Web existant Avant de creer votre propre service web, vous allez tester les services web deja existants et deployes sur des portails de services web. Il existe differents portails/annuaires de services web1 tels que webservicex.net2, Titan3, ProgrammableWeb4, WebserviceList5, PublicAPIs6, Algorithmia7, etc. Vous pouvez tester les differents portails en faisant une recherche de services. Aller sur le site : http://www.webservicex.net Choisir par exemple la categorie «Utilities» et un des services web disponibles par exemple Global Weather. Que fait ce service ? L’adresse suivante : http://www.webservicex.net/globalweather.asmx est identifiee comme le endpoint (le point d’acces) du service web. : Combien d’Operations sont gerees par le service web ? Confirmer ce nombre d’operation en analysant l’interface WSDL de description du service. 1 http://nordicapis.com/api-discovery-11-ways-to-find-apis/ http://www.webservicex.net 3 http://ccnt.zju.edu.cn:8080/ 4 http://www.programmableweb.com/ 5 http://www.webservicelist.com/ 6 https://www.publicapis.com/ 7 https://algorithmia.com/algorithms 2 1 M2 SIS 2016-2017 Tester le service. Expliquer le resultat obtenu et analysez les documents SOAP d’echange entre votre navigateur et le web service. Vous pouvez tester d’autres services web par exemple un service web pour envoyer des SMS. Toujours sur liste webservicex : cliquer sur la categorie « Messaging » puis sur SendSMSWorld. Vous pouvez tester ce service en remplissant le formulaire Test propose. Vous pouvez vous envoyer un SMS, malheureusement le resultat mettra un certain temps a vous parvenir (1 ou 2 jours). II. Création de services Web 1. Création de services SOAP en Java La conception d’un service Web necessite les etapes suivantes : 1. Definir et creer un service Web 2. Publier le service Web sur le serveur d’application Glassfish (serveur de production) 3. Utiliser un service Web en creant un client. 1.1 Création du serveur et du service Creer un nouveau projet : Java EE EJB Module que vous nommerez « CreationCalculWS « et vous selectionnez le serveur Glassfish. Creer un nouveau service web « CalculWS » dans le package « org.me.calcul ». Notez d’abord les packages javax.jws.*, qui serviront pour les annotations des classes, methodes et parametres. Vous remarquez que des annotations ont ete ajoutees (@WebService, @WebMethod et @WebParam). Définir une opération : Vous allez definir une operation pour le service que vous venez de creer. Cette operation permet de calculer la somme de deux entiers. Vous allez selectionner le mode de visualisation « design » comme illustre a la figure suivante. 2 M2 SIS 2016-2017 Pour ajouter une operation, soit vous cliquez sur « Add Operation » soit vous cliquez bouton droit sur (Web ServicesCalculService) et selectionner add Operation. L’operation « somme » prend deux entiers en entree et retourne un entier. Vous pouvez supprimer l’operation hello. Revenir au mode « Source ». Que remarquez-vous ? Modifier la methode somme pour qu’elle retourne la somme des 2 entiers. 1.2 Déploiement et test du Service Web Cliquer bouton droit sur le projet et choisir « deploy ». Dans l’onglet Glassfish du projet, a la fin de l’operation de deploiement, apparaît l’adresse internet ou le service Web est disponible. Lancer un navigateur internet avec l’adresse : http://localhost:.../ CalculWS / CalculWS ?tester ou bien cliquer sur le bouton droit sur le service (qui se trouve sous Web Services) Test Web Service. Verifier si la methode fonctionne correctement en saisissant les valeurs des deux parametres de la fonction. Etant donne que vous avez cree une application Web sur un serveur Glassfish, une page web sera ouverte. Vous pouvez entrer 2 entiers et tester votre service. 1.3 Vérification de la disponibilité du service sur le serveur Verifier la disponibilite du service en allant sur l’onglet serveur et en editant la liste des applications disponibles. L’onglet sur la partie gauche de l’environnement Netbeans constitue un raccourci vers le serveur d’applications. Faire clic droit sur le serveur et acceder a la console d’administration de glassfish (View Domain Admin Console). Choisir la liste des applications deployees. Qu’est-ce que vous obtenez ? Selectionner « Afficher point d’extrémité », quelles informations sont affichees ? 2. Création d’un client Le developpement du client consiste a appeler des operations du Service Web a partir d’un programme Java. Ainsi vous allez manipuler uniquement du code Java. Le client peut etre une application developpee : Java SE (Swing, …), Java EE avec les EJB (JSP, Servlet, …) Vous allez developper un client Java comme suit : Creer une application Java Standard que vous nommerez CalculWS_Client_Application Afin de generer la couche SOAP de communication, il faut ajouter un service Web client. Faire clic droit sur CalculWS_Client_ApplicationNewWeb Service Client. Selectionner le projet CalculWSApplication comme source WSDL ou bien saisir directement l’adresse du service Web dans la partie WSDL URL. Un ensemble de classes est genere par l’outil wsimport. En effet, a partir du fichier WSDL du service, Netbeans a genere de nombreuses classes, qui ont ete placees dans le repertoire Generated-Sources. En effet, wsimport est un outil de conversion WSDL vers Java. Il produit des classes et des interfaces Java a partir du code WSDL : o Une interface CalculWS.java qui correspond a la representation Java annotee du fichier WSDL pour le service web. 3 M2 SIS 2016-2017 o La classe CalculWS_Service.java comporte toutes les informations d’acces au service, notamment le lien sur l’url. o Une fabrique ObjectFactory pour creer les deux classes Somme et SommeResponse. Grace aux annotations JAXB8, ces classes generent les messages XML. o Ces classes ne doivent pas etre modifiees puisqu’elles sont generees automatiquement. o Un pseudo-repertoire Web Service References a ete ajoute, contenant la reference du Service Web. Nous l’utiliserons par la suite. Les fichiers WSDL et le schema des types du Service Web ont ete places dans le repertoire META-INF. Faire un double clic sur votre classe Client et faites un drag de la methode somme apres la methode main. Vous pouvez egalement faire un clic droit sur l’editeur Insert Code Call Web Service Operation. Netbeans va generer le code necessaire a l’invocation. Que contient ce code ? Placer dans le main un appel a la fonction, initialiser les variables, renseigner le catch et afficher le resultat dans la console. Compiler et tester. 8 JAXB (Java Architecture for XML Binding) est une API qui fournit un ensemble d’interfaces et de classes que les applications utilisent pour produire un schéma XML, générer les classes Java ou des documents XML. JAXWS s’appuie sur JAXB pour tout ce qui concerne la correspondance entre documents XML et objets Java. 4