SlideShare une entreprise Scribd logo
1  sur  10
Télécharger pour lire hors ligne
LA 3 SIL – 2013/2014

TP1 : Les Services Web avec JAX-WS
Dr. Lilia Sfaxi

Objectifs du TP : Création de services web avec JAX-WS et l’IDE Netbeans

Institut National des Sciences Appliquées et de Technologie
2

TP1 : Les Services Web avec JAX-WS

I. Les Services Web avec JAX-WS
I.1.

Présentation de JAX-WS

JAX-WS1 (Java API for XML Web Services) est une API permettant de développer des
services web étendus en utilisant le protocole SOAP et le langage WSDL via la plateforme
de développement JAVA.
Le développement de Services Web avec JAX-WS est basé sur des POJO (Plain Old Java
Object). Les fonctionnalités de base pour le développement de Web Services avec JAXWS requièrent simplement l’utilisation d’annotations Java.
La figure suivante2 montre l’architecture d’un système utilisant JAX-WS.

Il existe deux façons pour développer un service web avec JAX-WS :
1. Approche Top-Down (Contract First) : permet, à partir d’un document WSDL, de
générer les squelettes des différentes classes Java en utilisant l’outil wsimport, de
compléter leur implémentation, puis de les compiler, déployer et tester.

1

JAX-WS: http://jax-ws.java.net/

2

Figure extraite du cours Développer des Services Web Étendus avec Java : JAX-WS, par Mickaël BARON.

Architecture	
  Orientée	
  Services
TP1 : Les Services Web avec JAX-WS

3

2. Approche Bottom-Up (Code First) : permet de créer et d’annoter un POJO, de le
compiler, déployer et tester, puis de générer automatiquement le document WSDL.

I.2.

Installation et Démarrage

Pour les besoins de ce TP, on vous fournit les outils suivants3 (à installer dans l’ordre):
-­‐
-­‐

-­‐
-­‐

jdk-7u9-windows-i586.exe : Pour l’installation de JDK 7.
java_ee_sdk-6u4-windows.exe : Kit de développement de Java EE6. Contient,
principalement, le serveur d’application Glassfish3, dans lequel nous allons
déployer notre service web.
netbeans-7.2.1-ml-javaee-windows.exe : C’est l’environnement de développement
Netbeans, pour JavaEE.
soapUI-x32-4.5.1.exe : outil de test léger pour les services web.

I.2.1. Installation de Java EE SDK
Pour installer Java EE SDK, il faut que JDK soit installé au préalable (version 1.6 au
minimum). Il est recommandé de suivre les instructions suivantes :
-­‐

-­‐

Configurer le serveur Glassfish comme suit (configuration standard) :
o Login : admin
o Mot de passe : (vide)
Accepter les valeurs des ports par défaut : Admin Port (4848) et Http Port (8080)

Par défaut, votre serveur d’application sera installé directement sous : C:glassfish3
I.2.2. Installation de Netbeans IDE
Pour installer Netbeans, il est recommandé de suivre les instructions suivantes :
-­‐
-­‐

A la première page d’installation, décocher la case pour l’installation de Glassfish
Server.
Continuer l’installation normalement.

I.2.3. Configuration de Netbeans avec le serveur d’application Glassfish
Pour ajouter Glassfish comme serveur dans l’environnement Netbeans, suivre les
instructions suivantes :
-­‐
-­‐
-­‐
-­‐
-­‐

3

Démarrer NetBeans. Dans le menu Tools, cliquer sur « Servers »
Cliquer sur le bouton « Add Server »
Choisir « Glassfish Server 3+ » et cliquer sur Next
Dans le chemin d’installation, naviguer vers votre répertoire d’installation de
Glassfish (par défaut C:glassfish3)
Garder les informations sur le domaine identiques, et cliquer sur Finish.

Téléchargés à partir de http://www.oracle.com/index.html

Architecture	
  Orientée	
  Services
4

TP1 : Les Services Web avec JAX-WS

I.2.4. Démarrer le serveur Glassfish
Pour démarrer Glassfish, aller vers :
Démarrer -> Tous les programmes -> Java EE 6 SDK -> Démarrer le serveur d’application
Vous pourrez vérifier que votre serveur est bien démarré en lançant le navigateur, et en
tapant :
http://localhost:8080
La page d’accueil de Glassfish s’affichera.

II. Première Application : Helloworld
II.1.

Création du service web

Comme indiqué précédemment, deux approches sont possibles pour créer un service
web : une approche Bottom-Up et une approche Top-Down. Nous allons dans ce qui suit
vous montrer comment réaliser ces deux approches en utilisant NetBeans et le serveur
Glassfish.
II.1.1. Approche Bottom-Up (Code first)
Pour créer un service web en utilisant l’approche Bottom-Up, nous allons suivre les étapes
suivantes :
1. Ouvrir NetBeans, et créer un nouveau projet de type Web, en tapant :
File -> New Project -> Java Web -> Web Application
2. Cliquer sur Next. Appeler votre projet HelloWorldService, cliquer sur Next.
3. Garder la configuration du serveur par défaut, soit GlassFish Server 3+.
Remarque : Si vous n’avez pas configuré votre serveur comme indiqué dans I.2.3. , vous
ne trouverez pas de serveur dans la liste déroulante. Veillez à configurer votre serveur
d’abord.
4. Ne cochez aucun des frameworks proposés, et cliquer sur Finish.
Un nouveau projet de type WebApplication sera créé. Son arborescence sera comme
représenté dans la figure suivante :

Architecture	
  Orientée	
  Services
5

TP1 : Les Services Web avec JAX-WS

5. Sous le répertoire Source Packages, faire un clic-droit, et choisir New -> Java Class.
Appeler votre nouvelle classe Hello et taper comme nom de package
insat.soa.tp1.service
6. Taper le code suivant dans votre classe.

Importation des annotations @WebService et @WebMethod
Indique que la classe Hello est un service web

Constructeur par défaut (obligatoire si on définti d’autres constructeurs)

Méthode représentant un port du service: permet de saisir le nom de la
personne, et de retourner un message de bienvenue.

7. Pour déployer votre service sur le serveur Glassfish, faire un clic-droit sur le projet, et
choisir Deploy. Votre service web a bien été déployé si la console Netbeans affiche
un message comme celui-ci :

8. Il est possible de visualiser le fichier WSDL correspondant à la description de votre
service en tapant l’URL suivant dans votre navigateur :

Architecture	
  Orientée	
  Services
6

TP1 : Les Services Web avec JAX-WS
http://localhost:8080/HelloWorldService/HelloService?wsdl
Le résultat sera comme suit :

II.1.2. Approche Top-Down (Contract first)
Pour réaliser un service Web à partir d’un fichier WSDL existant, suivre les instructions
suivantes :
1. Créer un nouveau projet de type Web Application, et l’appeler
HelloWorldApplication2.
2. Faire un clic-droit sur le nom du projet créé, et choisir : New -> Web Service from
WSDL.
3. Nommer votre service web Hello2, votre package insat.soa.tp1.service2 et taper
dans la case « Select Local WSDL File or Enter WSDL URL » l’URL vers le WSDL de votre
première application HelloWorldService, soit :
http://localhost:8080/HelloWorldService/HelloService?wsdl
4. Cliquer sur Finish. Modifier le contenu de la classe Hello2 de manière à implémenter
votre service. On désire que l’implémentation soit identique à celle de la classe
Hello du service HelloWorldService, avec la différence qu’au lieu d’afficher « Hello
<name> ! », on veut qu’elle affiche « Bonjour <name> ! » .
5. Clic-droit sur votre projet, et choisir Clean and Build.
Remarque : Il est possible que suite à cette manœuvre, la console vous affiche une erreur
due à l’encodage. Le message sera comme suit :
error: unmappable character for encoding UTF-8
Pour corriger cette erreur, faites un clic-droit sur votre projet, et choisir Properties. Dans la
partie Sources et dans la liste déroulante Encoding, choisir ISO-8859-1.
Refaites ensuite un Clean and Build à votre application.
6. Une fois le message Build Successful affiché, déployer votre service, et visualiser son
fichier WSDL en tapant :
http://localhost:8080/HelloWorldService2/Hello2Service?wsdl

Architecture	
  Orientée	
  Services
TP1 : Les Services Web avec JAX-WS

7

Vérifier bien que ce fichier est identique au fichier WSDL du premier service.

II.2.

Consommation du service web

Pour tester ou utiliser votre service web, plusieurs méthodes sont disponibles. Nous allons
en montrer 3.
II.2.1. Tester le service web avec le Tester de Glassfish
Le serveur Glassfish vous fournit un outil pour tester votre service web directement sur le
serveur. Pour cela, suivre les instructions suivantes :
1. Ouvrir un navigateur web et taper l’URL suivante :
http://localhost:8080/HelloWorldService/HelloService?Tester
2. La page suivante sera affichée :

3. Taper votre nom dans la case qui vous est fournie, et cliquer sur SayHello. Observer
le résultat, ainsi que les requêtes et réponses SOAP générées.
4. Faites le test également pour le service HelloWorldService2. Quelle est la différence
entre les deux services ?
II.2.2. Tester le service web avec soapUI
Le serveur d’application qui héberge le service peut parfois être inaccessible à
l’utilisateur. On dispose donc d’autres outils pour tester notre service web. On cite par
exemple l’outil soapUI 4 qui est une solution de test open source et multi-plateforme,
permettant de créer rapidement et facilement des tests fonctionnels, grâce à une
interface graphique intuitive.
1. Installer l’outil soapui (il est inutile d’installer Hermer JMS). L’interface d’accueil a la
forme suivante :

4

soapUI : www.soapui.org

Architecture	
  Orientée	
  Services
8

TP1 : Les Services Web avec JAX-WS

2. Pour tester votre service, créer un nouveau projet en tapant : File -> New soapUI
Project
3. Taper comme nom de projet HelloWorldTest et donner l’URL du fichier WSDL du
service HelloWorldService. Cliquer ensuite sur OK.
4. L’arborescence de votre projet devient comme suit :

5. Double-cliquer sur Request1. La fenêtre suivante va s’ouvrir.

6. Le premier cadre représente la requête soap, et le second représentera la réponse.
Pour tester le service, taper votre nom à la place du « ? » dans la balise
<arg0> ?</arg0>
7. Cliquer sur la flèche
et observer le résultat.

Architecture	
  Orientée	
  Services
TP1 : Les Services Web avec JAX-WS

9

Refaites le test pour le service HelloWorldService2.
II.2.3. Consommer le service web avec une application cliente Java
Nous allons dans ce qui suit vous montrer comment consommer un service web avec une
application en Java, en utilisant NetBeans.
1. Créer un nouveau projet de type : Enterprise Application Client (catégorie :
JavaEE), que vous appellerez HelloWorldClient.
2. Pour définir un client au service web dans ce projet, faire un clic-droit sur le projet,
et choisir : New -> Web Service Client… La fenêtre suivante va apparaître :

3. Entrer dans le champs WSDL URL, l’URL du fichier wsdl du service HelloWorldService
4. Définir comme package : insat.soa.tp1.client, et cliquer sur Finish
5. L’arborescence du projet devient alors comme suit :

6. Pour faire appel au service web, faites glisser la méthode sayHello (ci-dessus
encadrée en rouge) qui se trouve dans Web Service References -> HelloService ->
HelloService -> HelloPort dans le code de la classe Main.java
7. Dans la méthode main de cette classe, ajouter l’appel à cette méthode en
tapant :
System.out.println(sayHello(<votre nom>)) ;

Architecture	
  Orientée	
  Services
10

TP1 : Les Services Web avec JAX-WS

8. Exécuter votre client, et observer le résultat.
Refaites la même opération, dans le même projet client, pour le service
HelloWorldService2, de manière à ce que l’affichage appelle les deux services l’un après
l’autre.

III. Homework
On se propose de créer un convertisseur de monnaie du dinar vers l’euro et vice versa.
Pour cela, réaliser les tâches suivantes :
1. Créer un service web ConvertisseurMonnaieService contenant deux méthodes :
une méthode qui prend une valeur en dinar pour la traduire en euro, et une autre
qui prend une valeur en euro pour la traduire en dinar.
2. Tester votre service web en utilisant les trois méthodes qui vous ont été montrées en
TP.

Date de remise du travail : prochaine séance de TP.

Architecture	
  Orientée	
  Services

Contenu connexe

Tendances

Tp3 - Application SOA avec BPEL
Tp3 - Application SOA avec BPELTp3 - Application SOA avec BPEL
Tp3 - Application SOA avec BPELLilia Sfaxi
 
Cours design pattern m youssfi partie 1 introduction et pattern strategy
Cours design pattern m youssfi partie 1 introduction et pattern strategyCours design pattern m youssfi partie 1 introduction et pattern strategy
Cours design pattern m youssfi partie 1 introduction et pattern strategyENSET, Université Hassan II Casablanca
 
Architecture jee principe de inversion de controle et injection des dependances
Architecture jee principe de inversion de controle et injection des dependancesArchitecture jee principe de inversion de controle et injection des dependances
Architecture jee principe de inversion de controle et injection des dependancesENSET, Université Hassan II Casablanca
 
Architectures orientés services (SOA)
Architectures orientés services (SOA)Architectures orientés services (SOA)
Architectures orientés services (SOA)Heithem Abbes
 
Introduction à React JS
Introduction à React JSIntroduction à React JS
Introduction à React JSAbdoulaye Dieng
 
Chp3 - Les Services Web
Chp3 - Les Services WebChp3 - Les Services Web
Chp3 - Les Services WebLilia Sfaxi
 
Introduction à spring boot
Introduction à spring bootIntroduction à spring boot
Introduction à spring bootAntoine Rey
 
Mohamed youssfi support architectures logicielles distribuées basées sue les ...
Mohamed youssfi support architectures logicielles distribuées basées sue les ...Mohamed youssfi support architectures logicielles distribuées basées sue les ...
Mohamed youssfi support architectures logicielles distribuées basées sue les ...ENSET, Université Hassan II Casablanca
 
Architecture réparties et les services web
Architecture réparties et les services webArchitecture réparties et les services web
Architecture réparties et les services webCHOUAIB EL HACHIMI
 
Chp1- Introduction aux Technologies Web et SOA
Chp1- Introduction aux Technologies Web et SOAChp1- Introduction aux Technologies Web et SOA
Chp1- Introduction aux Technologies Web et SOALilia Sfaxi
 
diagramme de séquence UML
diagramme de séquence UMLdiagramme de séquence UML
diagramme de séquence UMLAmir Souissi
 
Développement d'un site web jee de e commerce basé sur spring (m.youssfi)
Développement d'un site web jee de e commerce basé sur spring (m.youssfi)Développement d'un site web jee de e commerce basé sur spring (m.youssfi)
Développement d'un site web jee de e commerce basé sur spring (m.youssfi)ENSET, Université Hassan II Casablanca
 

Tendances (20)

Support Java Avancé Troisième Partie
Support Java Avancé Troisième PartieSupport Java Avancé Troisième Partie
Support Java Avancé Troisième Partie
 
Support de cours Spring M.youssfi
Support de cours Spring  M.youssfiSupport de cours Spring  M.youssfi
Support de cours Spring M.youssfi
 
Servlets et JSP
Servlets et JSPServlets et JSP
Servlets et JSP
 
Traitement distribue en BIg Data - KAFKA Broker and Kafka Streams
Traitement distribue en BIg Data - KAFKA Broker and Kafka StreamsTraitement distribue en BIg Data - KAFKA Broker and Kafka Streams
Traitement distribue en BIg Data - KAFKA Broker and Kafka Streams
 
Tp3 - Application SOA avec BPEL
Tp3 - Application SOA avec BPELTp3 - Application SOA avec BPEL
Tp3 - Application SOA avec BPEL
 
Cours design pattern m youssfi partie 1 introduction et pattern strategy
Cours design pattern m youssfi partie 1 introduction et pattern strategyCours design pattern m youssfi partie 1 introduction et pattern strategy
Cours design pattern m youssfi partie 1 introduction et pattern strategy
 
Support programmation orientée aspect mohamed youssfi (aop)
Support programmation orientée aspect mohamed youssfi (aop)Support programmation orientée aspect mohamed youssfi (aop)
Support programmation orientée aspect mohamed youssfi (aop)
 
Architecture jee principe de inversion de controle et injection des dependances
Architecture jee principe de inversion de controle et injection des dependancesArchitecture jee principe de inversion de controle et injection des dependances
Architecture jee principe de inversion de controle et injection des dependances
 
Architectures orientés services (SOA)
Architectures orientés services (SOA)Architectures orientés services (SOA)
Architectures orientés services (SOA)
 
Introduction à React JS
Introduction à React JSIntroduction à React JS
Introduction à React JS
 
Chp3 - Les Services Web
Chp3 - Les Services WebChp3 - Les Services Web
Chp3 - Les Services Web
 
Introduction à spring boot
Introduction à spring bootIntroduction à spring boot
Introduction à spring boot
 
Mohamed youssfi support architectures logicielles distribuées basées sue les ...
Mohamed youssfi support architectures logicielles distribuées basées sue les ...Mohamed youssfi support architectures logicielles distribuées basées sue les ...
Mohamed youssfi support architectures logicielles distribuées basées sue les ...
 
Architecture réparties et les services web
Architecture réparties et les services webArchitecture réparties et les services web
Architecture réparties et les services web
 
Support POO Java Deuxième Partie
Support POO Java Deuxième PartieSupport POO Java Deuxième Partie
Support POO Java Deuxième Partie
 
Support developpement applications mobiles avec ionic v3 et v4
Support developpement applications mobiles avec ionic v3 et v4Support developpement applications mobiles avec ionic v3 et v4
Support developpement applications mobiles avec ionic v3 et v4
 
Chp1- Introduction aux Technologies Web et SOA
Chp1- Introduction aux Technologies Web et SOAChp1- Introduction aux Technologies Web et SOA
Chp1- Introduction aux Technologies Web et SOA
 
diagramme de séquence UML
diagramme de séquence UMLdiagramme de séquence UML
diagramme de séquence UML
 
Présentation SOA
Présentation SOAPrésentation SOA
Présentation SOA
 
Développement d'un site web jee de e commerce basé sur spring (m.youssfi)
Développement d'un site web jee de e commerce basé sur spring (m.youssfi)Développement d'un site web jee de e commerce basé sur spring (m.youssfi)
Développement d'un site web jee de e commerce basé sur spring (m.youssfi)
 

Similaire à Tp1 - WS avec JAXWS

eServices-Tp2: bpel
eServices-Tp2: bpeleServices-Tp2: bpel
eServices-Tp2: bpelLilia Sfaxi
 
Déployer une application directement depuis visual studio 2010
Déployer une application directement depuis visual studio 2010Déployer une application directement depuis visual studio 2010
Déployer une application directement depuis visual studio 2010Novencia Groupe
 
Creation servicewebjavaee
Creation servicewebjavaeeCreation servicewebjavaee
Creation servicewebjavaeeOusmane Ciss
 
Architecture java j2 ee a partager
Architecture java j2 ee a partagerArchitecture java j2 ee a partager
Architecture java j2 ee a partageraliagadir
 
Asp.net Tutorials de L'application "Organizer"
Asp.net Tutorials de L'application "Organizer"Asp.net Tutorials de L'application "Organizer"
Asp.net Tutorials de L'application "Organizer"Nazih Heni
 
eServices-Tp3: esb
eServices-Tp3: esbeServices-Tp3: esb
eServices-Tp3: esbLilia Sfaxi
 
Selenium WebDriver avec Java
Selenium WebDriver avec Java Selenium WebDriver avec Java
Selenium WebDriver avec Java Ahmed HARRAK
 
WebServices.pdfbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
WebServices.pdfbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbWebServices.pdfbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
WebServices.pdfbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbHINDGUENDOUZ
 
Chapitre7 introduction-j2 ee
Chapitre7 introduction-j2 eeChapitre7 introduction-j2 ee
Chapitre7 introduction-j2 eeimene2010
 
Tp soa avec talend esb
Tp soa avec talend esbTp soa avec talend esb
Tp soa avec talend esbAlahyane Ahmed
 
Windows phone 7 sync application sur Azure, création d'application offline re...
Windows phone 7 sync application sur Azure, création d'application offline re...Windows phone 7 sync application sur Azure, création d'application offline re...
Windows phone 7 sync application sur Azure, création d'application offline re...Microsoft Décideurs IT
 
Création de Services et Configuration du ESB avec TalendESB
Création de Services et Configuration du ESB avec TalendESBCréation de Services et Configuration du ESB avec TalendESB
Création de Services et Configuration du ESB avec TalendESBLilia Sfaxi
 

Similaire à Tp1 - WS avec JAXWS (20)

eServices-Tp2: bpel
eServices-Tp2: bpeleServices-Tp2: bpel
eServices-Tp2: bpel
 
Déployer une application directement depuis visual studio 2010
Déployer une application directement depuis visual studio 2010Déployer une application directement depuis visual studio 2010
Déployer une application directement depuis visual studio 2010
 
Axis2 services fr
Axis2 services frAxis2 services fr
Axis2 services fr
 
Creation servicewebjavaee
Creation servicewebjavaeeCreation servicewebjavaee
Creation servicewebjavaee
 
Architecture java j2 ee a partager
Architecture java j2 ee a partagerArchitecture java j2 ee a partager
Architecture java j2 ee a partager
 
Asp.net Tutorials de L'application "Organizer"
Asp.net Tutorials de L'application "Organizer"Asp.net Tutorials de L'application "Organizer"
Asp.net Tutorials de L'application "Organizer"
 
Apprendre J2EE
Apprendre J2EEApprendre J2EE
Apprendre J2EE
 
.NET DotNet CF - 3
.NET DotNet CF - 3.NET DotNet CF - 3
.NET DotNet CF - 3
 
eServices-Tp3: esb
eServices-Tp3: esbeServices-Tp3: esb
eServices-Tp3: esb
 
Selenium WebDriver avec Java
Selenium WebDriver avec Java Selenium WebDriver avec Java
Selenium WebDriver avec Java
 
WebServices.pdfbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
WebServices.pdfbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbWebServices.pdfbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
WebServices.pdfbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
 
[Tuto] Big datatrack : Web Tracker
[Tuto] Big datatrack : Web Tracker[Tuto] Big datatrack : Web Tracker
[Tuto] Big datatrack : Web Tracker
 
Chapitre7 introduction-j2 ee
Chapitre7 introduction-j2 eeChapitre7 introduction-j2 ee
Chapitre7 introduction-j2 ee
 
Tp soa avec talend esb
Tp soa avec talend esbTp soa avec talend esb
Tp soa avec talend esb
 
Sécurisation des wcf
Sécurisation des wcfSécurisation des wcf
Sécurisation des wcf
 
OpenESB et BPEL
OpenESB et BPELOpenESB et BPEL
OpenESB et BPEL
 
Cours jee 1
Cours jee 1Cours jee 1
Cours jee 1
 
Windows phone 7 sync application sur Azure, création d'application offline re...
Windows phone 7 sync application sur Azure, création d'application offline re...Windows phone 7 sync application sur Azure, création d'application offline re...
Windows phone 7 sync application sur Azure, création d'application offline re...
 
Introduction aspnet
Introduction aspnetIntroduction aspnet
Introduction aspnet
 
Création de Services et Configuration du ESB avec TalendESB
Création de Services et Configuration du ESB avec TalendESBCréation de Services et Configuration du ESB avec TalendESB
Création de Services et Configuration du ESB avec TalendESB
 

Plus de Lilia Sfaxi

chp1-Intro à l'urbanisation des SI.pdf
chp1-Intro à l'urbanisation des SI.pdfchp1-Intro à l'urbanisation des SI.pdf
chp1-Intro à l'urbanisation des SI.pdfLilia Sfaxi
 
Plan d'études_INSAT_2022_2023.pdf
Plan d'études_INSAT_2022_2023.pdfPlan d'études_INSAT_2022_2023.pdf
Plan d'études_INSAT_2022_2023.pdfLilia Sfaxi
 
Lab1-DB-Cassandra
Lab1-DB-CassandraLab1-DB-Cassandra
Lab1-DB-CassandraLilia Sfaxi
 
TP2-UML-Correction
TP2-UML-CorrectionTP2-UML-Correction
TP2-UML-CorrectionLilia Sfaxi
 
TP1-UML-Correction
TP1-UML-CorrectionTP1-UML-Correction
TP1-UML-CorrectionLilia Sfaxi
 
TP0-UML-Correction
TP0-UML-CorrectionTP0-UML-Correction
TP0-UML-CorrectionLilia Sfaxi
 
TD4-UML-Correction
TD4-UML-CorrectionTD4-UML-Correction
TD4-UML-CorrectionLilia Sfaxi
 
TD3-UML-Séquences
TD3-UML-SéquencesTD3-UML-Séquences
TD3-UML-SéquencesLilia Sfaxi
 
TD3-UML-Correction
TD3-UML-CorrectionTD3-UML-Correction
TD3-UML-CorrectionLilia Sfaxi
 
TD2 - UML - Correction
TD2 - UML - CorrectionTD2 - UML - Correction
TD2 - UML - CorrectionLilia Sfaxi
 
TD1-UML-correction
TD1-UML-correctionTD1-UML-correction
TD1-UML-correctionLilia Sfaxi
 
Android - Tp1 - installation et démarrage
Android - Tp1 -   installation et démarrageAndroid - Tp1 -   installation et démarrage
Android - Tp1 - installation et démarrageLilia Sfaxi
 
Android - Tp2 - Elements graphiques
Android - Tp2 - Elements graphiques Android - Tp2 - Elements graphiques
Android - Tp2 - Elements graphiques Lilia Sfaxi
 
Android - Tp3 - intents
Android - Tp3 -  intentsAndroid - Tp3 -  intents
Android - Tp3 - intentsLilia Sfaxi
 
Android - TPBonus - web services
Android - TPBonus - web servicesAndroid - TPBonus - web services
Android - TPBonus - web servicesLilia Sfaxi
 
Android - Tp4 - graphiques avancés
Android - Tp4 - graphiques avancésAndroid - Tp4 - graphiques avancés
Android - Tp4 - graphiques avancésLilia Sfaxi
 

Plus de Lilia Sfaxi (20)

chp1-Intro à l'urbanisation des SI.pdf
chp1-Intro à l'urbanisation des SI.pdfchp1-Intro à l'urbanisation des SI.pdf
chp1-Intro à l'urbanisation des SI.pdf
 
Plan d'études_INSAT_2022_2023.pdf
Plan d'études_INSAT_2022_2023.pdfPlan d'études_INSAT_2022_2023.pdf
Plan d'études_INSAT_2022_2023.pdf
 
Lab3-DB_Neo4j
Lab3-DB_Neo4jLab3-DB_Neo4j
Lab3-DB_Neo4j
 
Lab2-DB-Mongodb
Lab2-DB-MongodbLab2-DB-Mongodb
Lab2-DB-Mongodb
 
Lab1-DB-Cassandra
Lab1-DB-CassandraLab1-DB-Cassandra
Lab1-DB-Cassandra
 
TP2-UML-Correction
TP2-UML-CorrectionTP2-UML-Correction
TP2-UML-Correction
 
TP1-UML-Correction
TP1-UML-CorrectionTP1-UML-Correction
TP1-UML-Correction
 
TP0-UML-Correction
TP0-UML-CorrectionTP0-UML-Correction
TP0-UML-Correction
 
TD4-UML
TD4-UMLTD4-UML
TD4-UML
 
TD4-UML-Correction
TD4-UML-CorrectionTD4-UML-Correction
TD4-UML-Correction
 
TD3-UML-Séquences
TD3-UML-SéquencesTD3-UML-Séquences
TD3-UML-Séquences
 
TD3-UML-Correction
TD3-UML-CorrectionTD3-UML-Correction
TD3-UML-Correction
 
TD2 - UML - Correction
TD2 - UML - CorrectionTD2 - UML - Correction
TD2 - UML - Correction
 
TD1 - UML - DCU
TD1 - UML - DCUTD1 - UML - DCU
TD1 - UML - DCU
 
TD1-UML-correction
TD1-UML-correctionTD1-UML-correction
TD1-UML-correction
 
Android - Tp1 - installation et démarrage
Android - Tp1 -   installation et démarrageAndroid - Tp1 -   installation et démarrage
Android - Tp1 - installation et démarrage
 
Android - Tp2 - Elements graphiques
Android - Tp2 - Elements graphiques Android - Tp2 - Elements graphiques
Android - Tp2 - Elements graphiques
 
Android - Tp3 - intents
Android - Tp3 -  intentsAndroid - Tp3 -  intents
Android - Tp3 - intents
 
Android - TPBonus - web services
Android - TPBonus - web servicesAndroid - TPBonus - web services
Android - TPBonus - web services
 
Android - Tp4 - graphiques avancés
Android - Tp4 - graphiques avancésAndroid - Tp4 - graphiques avancés
Android - Tp4 - graphiques avancés
 

Tp1 - WS avec JAXWS

  • 1. LA 3 SIL – 2013/2014 TP1 : Les Services Web avec JAX-WS Dr. Lilia Sfaxi Objectifs du TP : Création de services web avec JAX-WS et l’IDE Netbeans Institut National des Sciences Appliquées et de Technologie
  • 2. 2 TP1 : Les Services Web avec JAX-WS I. Les Services Web avec JAX-WS I.1. Présentation de JAX-WS JAX-WS1 (Java API for XML Web Services) est une API permettant de développer des services web étendus en utilisant le protocole SOAP et le langage WSDL via la plateforme de développement JAVA. Le développement de Services Web avec JAX-WS est basé sur des POJO (Plain Old Java Object). Les fonctionnalités de base pour le développement de Web Services avec JAXWS requièrent simplement l’utilisation d’annotations Java. La figure suivante2 montre l’architecture d’un système utilisant JAX-WS. Il existe deux façons pour développer un service web avec JAX-WS : 1. Approche Top-Down (Contract First) : permet, à partir d’un document WSDL, de générer les squelettes des différentes classes Java en utilisant l’outil wsimport, de compléter leur implémentation, puis de les compiler, déployer et tester. 1 JAX-WS: http://jax-ws.java.net/ 2 Figure extraite du cours Développer des Services Web Étendus avec Java : JAX-WS, par Mickaël BARON. Architecture  Orientée  Services
  • 3. TP1 : Les Services Web avec JAX-WS 3 2. Approche Bottom-Up (Code First) : permet de créer et d’annoter un POJO, de le compiler, déployer et tester, puis de générer automatiquement le document WSDL. I.2. Installation et Démarrage Pour les besoins de ce TP, on vous fournit les outils suivants3 (à installer dans l’ordre): -­‐ -­‐ -­‐ -­‐ jdk-7u9-windows-i586.exe : Pour l’installation de JDK 7. java_ee_sdk-6u4-windows.exe : Kit de développement de Java EE6. Contient, principalement, le serveur d’application Glassfish3, dans lequel nous allons déployer notre service web. netbeans-7.2.1-ml-javaee-windows.exe : C’est l’environnement de développement Netbeans, pour JavaEE. soapUI-x32-4.5.1.exe : outil de test léger pour les services web. I.2.1. Installation de Java EE SDK Pour installer Java EE SDK, il faut que JDK soit installé au préalable (version 1.6 au minimum). Il est recommandé de suivre les instructions suivantes : -­‐ -­‐ Configurer le serveur Glassfish comme suit (configuration standard) : o Login : admin o Mot de passe : (vide) Accepter les valeurs des ports par défaut : Admin Port (4848) et Http Port (8080) Par défaut, votre serveur d’application sera installé directement sous : C:glassfish3 I.2.2. Installation de Netbeans IDE Pour installer Netbeans, il est recommandé de suivre les instructions suivantes : -­‐ -­‐ A la première page d’installation, décocher la case pour l’installation de Glassfish Server. Continuer l’installation normalement. I.2.3. Configuration de Netbeans avec le serveur d’application Glassfish Pour ajouter Glassfish comme serveur dans l’environnement Netbeans, suivre les instructions suivantes : -­‐ -­‐ -­‐ -­‐ -­‐ 3 Démarrer NetBeans. Dans le menu Tools, cliquer sur « Servers » Cliquer sur le bouton « Add Server » Choisir « Glassfish Server 3+ » et cliquer sur Next Dans le chemin d’installation, naviguer vers votre répertoire d’installation de Glassfish (par défaut C:glassfish3) Garder les informations sur le domaine identiques, et cliquer sur Finish. Téléchargés à partir de http://www.oracle.com/index.html Architecture  Orientée  Services
  • 4. 4 TP1 : Les Services Web avec JAX-WS I.2.4. Démarrer le serveur Glassfish Pour démarrer Glassfish, aller vers : Démarrer -> Tous les programmes -> Java EE 6 SDK -> Démarrer le serveur d’application Vous pourrez vérifier que votre serveur est bien démarré en lançant le navigateur, et en tapant : http://localhost:8080 La page d’accueil de Glassfish s’affichera. II. Première Application : Helloworld II.1. Création du service web Comme indiqué précédemment, deux approches sont possibles pour créer un service web : une approche Bottom-Up et une approche Top-Down. Nous allons dans ce qui suit vous montrer comment réaliser ces deux approches en utilisant NetBeans et le serveur Glassfish. II.1.1. Approche Bottom-Up (Code first) Pour créer un service web en utilisant l’approche Bottom-Up, nous allons suivre les étapes suivantes : 1. Ouvrir NetBeans, et créer un nouveau projet de type Web, en tapant : File -> New Project -> Java Web -> Web Application 2. Cliquer sur Next. Appeler votre projet HelloWorldService, cliquer sur Next. 3. Garder la configuration du serveur par défaut, soit GlassFish Server 3+. Remarque : Si vous n’avez pas configuré votre serveur comme indiqué dans I.2.3. , vous ne trouverez pas de serveur dans la liste déroulante. Veillez à configurer votre serveur d’abord. 4. Ne cochez aucun des frameworks proposés, et cliquer sur Finish. Un nouveau projet de type WebApplication sera créé. Son arborescence sera comme représenté dans la figure suivante : Architecture  Orientée  Services
  • 5. 5 TP1 : Les Services Web avec JAX-WS 5. Sous le répertoire Source Packages, faire un clic-droit, et choisir New -> Java Class. Appeler votre nouvelle classe Hello et taper comme nom de package insat.soa.tp1.service 6. Taper le code suivant dans votre classe. Importation des annotations @WebService et @WebMethod Indique que la classe Hello est un service web Constructeur par défaut (obligatoire si on définti d’autres constructeurs) Méthode représentant un port du service: permet de saisir le nom de la personne, et de retourner un message de bienvenue. 7. Pour déployer votre service sur le serveur Glassfish, faire un clic-droit sur le projet, et choisir Deploy. Votre service web a bien été déployé si la console Netbeans affiche un message comme celui-ci : 8. Il est possible de visualiser le fichier WSDL correspondant à la description de votre service en tapant l’URL suivant dans votre navigateur : Architecture  Orientée  Services
  • 6. 6 TP1 : Les Services Web avec JAX-WS http://localhost:8080/HelloWorldService/HelloService?wsdl Le résultat sera comme suit : II.1.2. Approche Top-Down (Contract first) Pour réaliser un service Web à partir d’un fichier WSDL existant, suivre les instructions suivantes : 1. Créer un nouveau projet de type Web Application, et l’appeler HelloWorldApplication2. 2. Faire un clic-droit sur le nom du projet créé, et choisir : New -> Web Service from WSDL. 3. Nommer votre service web Hello2, votre package insat.soa.tp1.service2 et taper dans la case « Select Local WSDL File or Enter WSDL URL » l’URL vers le WSDL de votre première application HelloWorldService, soit : http://localhost:8080/HelloWorldService/HelloService?wsdl 4. Cliquer sur Finish. Modifier le contenu de la classe Hello2 de manière à implémenter votre service. On désire que l’implémentation soit identique à celle de la classe Hello du service HelloWorldService, avec la différence qu’au lieu d’afficher « Hello <name> ! », on veut qu’elle affiche « Bonjour <name> ! » . 5. Clic-droit sur votre projet, et choisir Clean and Build. Remarque : Il est possible que suite à cette manœuvre, la console vous affiche une erreur due à l’encodage. Le message sera comme suit : error: unmappable character for encoding UTF-8 Pour corriger cette erreur, faites un clic-droit sur votre projet, et choisir Properties. Dans la partie Sources et dans la liste déroulante Encoding, choisir ISO-8859-1. Refaites ensuite un Clean and Build à votre application. 6. Une fois le message Build Successful affiché, déployer votre service, et visualiser son fichier WSDL en tapant : http://localhost:8080/HelloWorldService2/Hello2Service?wsdl Architecture  Orientée  Services
  • 7. TP1 : Les Services Web avec JAX-WS 7 Vérifier bien que ce fichier est identique au fichier WSDL du premier service. II.2. Consommation du service web Pour tester ou utiliser votre service web, plusieurs méthodes sont disponibles. Nous allons en montrer 3. II.2.1. Tester le service web avec le Tester de Glassfish Le serveur Glassfish vous fournit un outil pour tester votre service web directement sur le serveur. Pour cela, suivre les instructions suivantes : 1. Ouvrir un navigateur web et taper l’URL suivante : http://localhost:8080/HelloWorldService/HelloService?Tester 2. La page suivante sera affichée : 3. Taper votre nom dans la case qui vous est fournie, et cliquer sur SayHello. Observer le résultat, ainsi que les requêtes et réponses SOAP générées. 4. Faites le test également pour le service HelloWorldService2. Quelle est la différence entre les deux services ? II.2.2. Tester le service web avec soapUI Le serveur d’application qui héberge le service peut parfois être inaccessible à l’utilisateur. On dispose donc d’autres outils pour tester notre service web. On cite par exemple l’outil soapUI 4 qui est une solution de test open source et multi-plateforme, permettant de créer rapidement et facilement des tests fonctionnels, grâce à une interface graphique intuitive. 1. Installer l’outil soapui (il est inutile d’installer Hermer JMS). L’interface d’accueil a la forme suivante : 4 soapUI : www.soapui.org Architecture  Orientée  Services
  • 8. 8 TP1 : Les Services Web avec JAX-WS 2. Pour tester votre service, créer un nouveau projet en tapant : File -> New soapUI Project 3. Taper comme nom de projet HelloWorldTest et donner l’URL du fichier WSDL du service HelloWorldService. Cliquer ensuite sur OK. 4. L’arborescence de votre projet devient comme suit : 5. Double-cliquer sur Request1. La fenêtre suivante va s’ouvrir. 6. Le premier cadre représente la requête soap, et le second représentera la réponse. Pour tester le service, taper votre nom à la place du « ? » dans la balise <arg0> ?</arg0> 7. Cliquer sur la flèche et observer le résultat. Architecture  Orientée  Services
  • 9. TP1 : Les Services Web avec JAX-WS 9 Refaites le test pour le service HelloWorldService2. II.2.3. Consommer le service web avec une application cliente Java Nous allons dans ce qui suit vous montrer comment consommer un service web avec une application en Java, en utilisant NetBeans. 1. Créer un nouveau projet de type : Enterprise Application Client (catégorie : JavaEE), que vous appellerez HelloWorldClient. 2. Pour définir un client au service web dans ce projet, faire un clic-droit sur le projet, et choisir : New -> Web Service Client… La fenêtre suivante va apparaître : 3. Entrer dans le champs WSDL URL, l’URL du fichier wsdl du service HelloWorldService 4. Définir comme package : insat.soa.tp1.client, et cliquer sur Finish 5. L’arborescence du projet devient alors comme suit : 6. Pour faire appel au service web, faites glisser la méthode sayHello (ci-dessus encadrée en rouge) qui se trouve dans Web Service References -> HelloService -> HelloService -> HelloPort dans le code de la classe Main.java 7. Dans la méthode main de cette classe, ajouter l’appel à cette méthode en tapant : System.out.println(sayHello(<votre nom>)) ; Architecture  Orientée  Services
  • 10. 10 TP1 : Les Services Web avec JAX-WS 8. Exécuter votre client, et observer le résultat. Refaites la même opération, dans le même projet client, pour le service HelloWorldService2, de manière à ce que l’affichage appelle les deux services l’un après l’autre. III. Homework On se propose de créer un convertisseur de monnaie du dinar vers l’euro et vice versa. Pour cela, réaliser les tâches suivantes : 1. Créer un service web ConvertisseurMonnaieService contenant deux méthodes : une méthode qui prend une valeur en dinar pour la traduire en euro, et une autre qui prend une valeur en euro pour la traduire en dinar. 2. Tester votre service web en utilisant les trois méthodes qui vous ont été montrées en TP. Date de remise du travail : prochaine séance de TP. Architecture  Orientée  Services