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 ServicesCalculService) 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_ApplicationNewWeb 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