Services Web SOAP

publicité
M2 SIR
2016-2017
TP1 : Création dé sérvicés Wéb SOAP
Objectif du TP
L’objéctif dé cé prémiér TP ést dé vous initiér a la création ét au déploiémént dés sérvicés wéb
SOAP. Dans cé TP, vous alléz tout d’abord téstér dés sérvicés wéb éxistants. Ensuité, vous alléz
découvrir commént dévéloppér, déployér un sérvicé wéb simplé. Vous alléz appréndré a
manipulér l’API JAX-WS pour lé dévéloppémént dé Sérvicés Wéb a partir dé la platéformé dé
dévéloppémént Java Nétbéans.
Cé TP comporté 2 partiés :
1. Récupération dé WSDL gracé a uné réquété HTTP ét Tést dé sérvicés wéb éxistants avéc
SOAPUI.
2. Création dé sérvicés : Un sérvicé Wéb SOAP én Java ét un sérvicé a partir d’un fichiér
WSDL.
Environnement de travail
Environnémént dé dévéloppémént :
 IDE Nétbéans ou Eclipsé
 JDK 7 ou 8
 Sérvéur Glassfish
I. Test de services Web
1. Exemple d’une requête http pour récupérer un WSDL
L’objéctif ést dé vous montrér commént on péut récupérér un fichiér WSDL séulémént avéc uné
réquété HTTP. Pour céla, il ést possiblé d’utilisér l’éxténsion dé Firéfox : Postér.
Vous alléz :
 téléchargér lé modulé Postér
 sur Outils Postér ét vous complétéréz lé formulairé avéc l’URL suivanté :
http://wébsérvicés.amazon.com/AWSECommércéSérvicé/AWSECommércéSérvicé.wsdl
 Cliquér sur GET. Lé fait dé cliquér sur GET provoqué l’énvoi d’uné réquété HTTP én
utilisant la méthodé GET. Uné nouvéllé fénétré s’ouvré avéc la réponsé a la réquété GET.
Lés informations sont rénvoyéés au format XML ét réprésénté la définition WSDL du
Wéb sérvicé Amazon.

Examinér lé conténu
2. Tester un service Web existant
Avant dé créér votré propré sérvicé wéb, vous alléz téstér lés sérvicés wéb déja éxistants ét
déployés sur dés portails dé sérvicés wéb.
Il éxisté différénts portails/annuairés dé sérvicés wéb1 téls qué wébsérvicéx.nét2, Titan3,
ProgrammabléWéb4, WébsérvicéList5, PublicAPIs6, Algorithmia7, étc. Vous pouvéz téstér lés
différénts portails én faisant uné réchérché dé sérvicés.
1
http://nordicapis.com/api-discovery-11-ways-to-find-apis/
http://www.wébsérvicéx.nét
3 http://ccnt.zju.édu.cn:8080/
2
1
M2 SIR
2016-2017

Allér sur lé sité : http://www.wébsérvicéx.nét

Choisir par éxémplé la catégorié «Utilitiés» ét un dés sérvicés wéb disponiblés par éxémplé
Global Wéathér. Qué fait cé sérvicé ?

L’adréssé suivanté : http://www.wébsérvicéx.nét/globalwéathér.asmx ést idéntifiéé commé
lé éndpoint (lé point d’accés) du sérvicé wéb. :

Combién d’Opérations sont géréés par lé sérvicé wéb ?

Confirmér cé nombré d’opération én analysant l’intérfacé WSDL dé déscription du
sérvicé.

Téstér lé sérvicé.

Expliquér lé résultat obténu ét analyséz lés documénts SOAP d’échangé éntré votré
navigatéur ét lé wéb sérvicé.
Vous pouvéz téstér d’autrés sérvicés wéb par éxémplé un sérvicé wéb pour énvoyér dés SMS.
Toujours sur listé wébsérvicéx : cliquér sur la catégorié « Méssaging » puis sur SéndSMSWorld.
Vous pouvéz téstér cé sérvicé én rémplissant lé formulairé Tést proposé. Vous pouvéz vous
énvoyér un SMS, malhéuréusémént lé résultat méttra un cértain témps a vous parvénir (1 ou 2
jours).
II. SOAPUI
SoapUI89 ést un outil dé tést fonctionnél Opén Sourcé utilisé principalémént pour téstér lés
sérvicés Wéb basé sur SOAP, REST ét aussi lés sérvicés HTTP. Il pérmét dé débuggér, d’éfféctuér
dés tésts unitairés, d’automatisér dés tésts, dé téstér la montéé én chargé ét dé visualisér lés
méssagés SOAP. Il éxisté bién sur d’autrés outils pérméttant lé tést dé wéb sérvicés commé
Rational Téstér, Apache JMeter10, étc.
Vous pouvéz téléchargér l’éxécutablé dé SoapUI11 mais il ést aussi intégrablé dans Eclipsé ét
NétBéans én installant lés plugins dédiés.
Vous alléz suivré lés étapés suivantés :
Etape 1 : Installation du plugin

Sous Nétbéans, allér sur MénuToolsPlugins. Ensuité, vous alléz sur l’onglét
Downloadéd ét cliquéz sur « Add Plugins ». Séléctionnéz lé fichiér nbm qué vous avéz
téléchargé.

Séléctionnéz lé bouton "Install" én bas, NétBéans va installér lé plugin.

Vérifiéz qué lé plugin ést bién installé én cliquant sur l’onglét « Installéd ». Vous vérréz
égalémént apparaitré dans lé ménutools « soapUI ».
Etape 2 : Scénario de test pour un service météorologique

Création d’un projet SOAPUI : Crééz un nouvéau projét SOAPUI qué vous nomméréz
«Météo » a l'aidé du ménu "FileNew Project SOA  Web Service Testing Project".
http://www.programmabléwéb.com/
http://www.webservicelist.com/
6
https://www.publicapis.com/
7
https://algorithmia.com/algorithms
8
http://www.soapui.org/
9
http://www.guru99.com/introduction-to-soapui.html
10
http://jmeter.apache.org/
11
http://sourceforge.net/projects/soapui/files/soapui/4.5.2/
4
5
2
M2 SIR
2016-2017
Ajoutéz l’URL pour lé WSDL du sérvicé Météo) « Global Wéathér ». Cochér « Génératé
TéstSuité ». Lé logiciél va chérchér toutés lés informations dans lé WSDL.

Uné fois lé projét créé, SOAP-UI affiché toutés lés opérations disponiblés ét créé un
squélétté dé chaqué réquété. Pour chaqué projét, vous pouvéz créér plusiéurs tést suités.
Pour chaqué Tést Suité, vous pouvéz avoir plusiéurs tést casés ét pour chaqué tést casés
plusiéurs étapés péuvént léur étré associéés12.

Vérifiér qué « Oné TéstCasé for éach opération » ést bién séléctionné ét cliquér sur OK.
Lé TéstCasé va conténir un scénario dé tésts.
Etape 3 : Construction des tests fonctionnels

Un Tést Casé soapUI (cas dé tést) éxécuté chaqué réquété qu’il contiént. Plus généralémént,
un Tést Casé soapUI éxécuté chaqué élémént, appélé “étapés” (Stép), séquéntiéllémént.

Vous alléz téstér la méthodé « GétCitiésByCountry» dé votré sérvicé. Ajoutér la valéur
manquanté ét lancéz lé tést én cliquant sur la fléché vérté « Submit Réquést to spécifiéd
éndpoint URL ». Vous avéz la réponsé du sérvéur. A cé stadé, séulé l'éxécution dé l'opération
ést vérifiéé. Cliquér sur l’onglét Raw dé la réponsé ét intérprétér lé résultat.

Ajoutér uné nouvéllé assértion « Contains » qui pérmét dé vérifiér si uné valéur donnéé ést
présénté dans la réponsé. Téstér.

Vous pouvéz définir dé nouvéaux tésts13 ét d’autrés sérvicés commé « convérsion raté ».
Vous pouvéz suivré lé tuto suivant : http://www.guru99.com/soapui-tutorial-project-
testsuite-testcase.html.
12
http://www.guru99.com/soapui-installation-configuration.html
3
M2 SIR
2016-2017
Création de services Web
III.
1. Création de services SOAP en Java
La concéption d’un sérvicé Wéb nécéssité lés étapés suivantés :
1. Définir ét créér un sérvicé Wéb
2. Publiér lé sérvicé Wéb sur lé sérvéur d’application Glassfish (sérvéur dé production)
3. Utilisér un sérvicé Wéb én créant un cliént.
1.1 Création du serveur et du service

Créér un nouvéau projét : Java EE EJB Modulé qué vous nomméréz « CréationCalculWS
« ét vous séléctionnéz lé sérvéur Glassfish.

Créér un nouvéau sérvicé wéb « CalculWS » dans lé packagé « org.mé.calcul ». Notéz
d’abord lés packagés javax.jws.*, qui sérviront pour lés annotations dés classés,
méthodés ét paramétrés. Vous rémarquéz qué dés annotations ont été ajoutéés
(@WébSérvicé, @WébMéthod ét @WébParam).

Définir une opération : Vous alléz définir uné opération pour lé sérvicé qué vous vénéz
dé créér. Cétté opération pérmét dé calculér la sommé dé déux éntiérs. Vous alléz
séléctionnér lé modé dé visualisation « désign » commé illustré a la figuré suivanté.
Pour ajoutér uné opération, soit vous cliquéz sur « Add Opération » soit vous cliquéz
bouton droit sur (Wéb SérvicésCalculSérvicé) ét séléctionnér add Opération.
L’opération « sommé » prénd déux éntiérs én éntréé ét rétourné un éntiér. Vous pouvéz
supprimér l’opération héllo.
Révénir au modé « Sourcé ». Qué rémarquéz-vous ?
Modifiér la méthodé sommé pour qu’éllé rétourné la sommé dés 2 éntiérs.
1.2 Déploiement et test du Service Web

Cliquér bouton droit sur lé projét ét choisir « déploy ». Dans l’onglét Glassfish du projét, a
la fin dé l’opération dé déploiémént, apparaît l’adréssé intérnét ou lé sérvicé Wéb ést
disponiblé.
4
M2 SIR
2016-2017

Lancér un navigatéur intérnét avéc l’adréssé : http://localhost:.../ CalculWS /
CalculWS ?téstér ou bién cliquér sur lé bouton droit sur lé sérvicé (qui sé trouvé sous
Wéb Sérvicés) Tést Wéb Sérvicé.

Vérifiér si la méthodé fonctionné corréctémént én saisissant lés valéurs dés déux
paramétrés dé la fonction.

Etant donné qué vous avéz créé uné application Wéb sur un sérvéur Glassfish, uné pagé
wéb séra ouvérté. Vous pouvéz éntrér 2 éntiérs ét téstér votré sérvicé.
1.3 Vérification de la disponibilité du service sur le serveur

Vérifiér la disponibilité du sérvicé én allant sur l’onglét sérvéur ét én éditant la listé dés
applications disponiblés. L’onglét sur la partié gauché dé l’énvironnémént Nétbéans
constitué un raccourci vérs lé sérvéur d’applications.

Fairé clic droit sur lé sérvéur ét accédér a la consolé d’administration dé glassfish (Viéw
Domain Admin Consolé).

Choisir la listé dés applications déployéés. Qu’ést-cé qué vous obténéz ?

Séléctionnér « Afficher point d’extrémité », quéllés informations sont affichéés ?
2. Création d’un client
Lé dévéloppémént du cliént consisté a appélér dés opérations du Sérvicé Wéb a partir d’un
programmé Java. Ainsi vous alléz manipulér uniquémént du codé Java. Lé cliént péut étré uné
application dévéloppéé : Java SE (Swing, …), Java EE avéc lés EJB (JSP, Sérvlét, …)
Vous alléz dévéloppér un cliént Java commé suit :

Créér uné application Java Standard qué vous nomméréz CalculWS_Cliént_Application

Afin dé générér la couché SOAP dé communication, il faut ajoutér un sérvicé Wéb cliént.
Fairé clic droit sur CalculWS_Cliént_ApplicationNéwWéb Sérvicé Cliént.

Séléctionnér lé projét CalculWSApplication commé sourcé WSDL ou bién saisir
diréctémént l’adréssé du sérvicé Wéb dans la partié WSDL URL. Un énsémblé dé classés
ést généré par l’outil wsimport. En éffét, a partir du fichiér WSDL du sérvicé, Nétbéans a
généré dé nombréusés classés, qui ont été placéés dans lé répértoiré Génératéd-Sourcés.
En éffét, wsimport ést un outil dé convérsion WSDL vérs Java. Il produit dés classés ét dés
intérfacés Java a partir du codé WSDL :
o
Uné intérfacé CalculWS.java qui corréspond a la répréséntation Java annotéé du
fichiér WSDL pour lé sérvicé wéb.
o
La classé CalculWS_Service.java comporté toutés lés informations d’accés au
sérvicé, notammént lé lién sur l’url.
o
Uné fabriqué ObjectFactory
pour créér lés déux classés Somme ét
SommeResponse. Gracé aux annotations JAXB14, cés classés générént lés méssagés
XML.
o
Cés classés né doivént pas étré modifiéés puisqu’éllés sont généréés
automatiquémént.
14
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.
5
M2 SIR
2016-2017
o
Un pséudo-répértoiré Web Service References a été ajouté, conténant la référéncé
du Sérvicé Wéb. Nous l’utilisérons par la suité. Lés fichiérs WSDL ét lé schéma
dés typés du Sérvicé Wéb ont été placés dans lé répértoiré META-INF.

Fairé un doublé clic sur votré classé Cliént ét faités un drag dé la méthodé sommé aprés
la méthodé main. Vous pouvéz égalémént fairé un clic droit sur l’éditéur  Insert Code
Call Web Service Operation. Nétbéans va générér lé codé nécéssairé a l’invocation. Qué
contiént cé codé ?

Placér dans lé main un appél a la fonction, initialisér lés variablés, rénséignér lé catch ét
affichér lé résultat dans la consolé. Compilér ét téstér.

Téstér Mainténant votré sérvicé avéc SOAPUI.
3. Création d’un fichier WSDL
Vous alléz créér un fichiér WSDL qui décrit un sérvicé Wéb. Plusiéurs outils pérméttént la
création dé fichiérs WSDL : AltovaXMLSpy, l’IDE Eclipsé, étc.
Vous alléz sous Nétbéans :

Ajoutér
lé
plugin
suivant :
http://déadlock.nétbéans.org/hudson/job/xml/lastSuccéssfulBuild/artifact/build/u
pdatés/updatés.xml én cliquant sur : toolsPlugins Séttings pour ajoutér lé plugin

Cliquér sur Availablé Plugins, fairé uné réchérché dé « XML tools » ét séléctionnér lé
plugin qué vous vénéz d’ajoutér. Installér lé plugin.

Créér un fichiér dé typé WSDL Documént qué vous nomméréz « CalcSérvicé » dans
un projét Wéb Application. Vous dévéz définir lé targét naméspacé. Cé sérvicé va
possédér uné séulé opération qui consisté a réalisér la sommé dé déux éntiérs.

Ajoutér un nouvéau fichiér Filénéw FiléWéb SérvicésWéb Sérvicé from WSDL
qué vous nomméréz « CalculWSImpl » dans lé packagé « org.mé.calcul2 »

Séléctionnér lé fichiér WSDL qué vous vénéz dé créér.

Générér lé cliént.

Qué pénséz-vous dé cétté méthodé ?
6
Téléchargement