6
M2 SIR 2016-2017 1 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 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éb 1 téls qué wébsérvicéx.nét 2 , Titan 3 , ProgrammabléWéb 4 , WébsérvicéList 5 , PublicAPIs 6 , Algorithmia 7 , é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/ 2 http://www.wébsérvicéx.nét 3 http://ccnt.zju.édu.cn:8080/

TP1 : Cré ation dé sérvicés Wéb SOAP

  • Upload
    lamphuc

  • View
    220

  • Download
    5

Embed Size (px)

Citation preview

Page 1: TP1 : Cré ation dé sérvicés Wéb SOAP

M2 SIR 2016-2017

1

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 gra cé 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/

2 http://www.wébsérvicéx.nét 3 http://ccnt.zju.édu.cn:8080/

Page 2: TP1 : Cré ation dé sérvicés Wéb SOAP

M2 SIR 2016-2017

2

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 su r 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énuToolsPlugins. 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énutools « 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 "FileNew Project SOA Web Service Testing Project".

4 http://www.programmabléwéb.com/ 5 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/

Page 3: TP1 : Cré ation dé sérvicés Wéb SOAP

M2 SIR 2016-2017

3

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

Page 4: TP1 : Cré ation dé sérvicés Wéb SOAP

M2 SIR 2016-2017

4

III. Création de services Web

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ésCalculSé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é.

Page 5: TP1 : Cré ation dé sérvicés Wéb SOAP

M2 SIR 2016-2017

5

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_ApplicationNéwWé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. Gra cé 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. JAX-

WS s’appuie sur JAXB pour tout ce qui concerne la correspondance entre documents XML et objets Java.

Page 6: TP1 : Cré ation dé sérvicés Wéb SOAP

M2 SIR 2016-2017

6

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/updatés/updatés.xml én cliquant sur : toolsPlugins 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ésWé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é ?