Vous êtes sur la page 1sur 5

Cours 7:

CRÉATION ET DÉPLOIEMENT DE

SERVICES WEB EN JAVA

(Hors Série)

0- Généralités : Développement de Web Services


La conception d’un service Web nécessite les étapes suivantes :

1. Définir et créer un service Web

2. Publier le service Web sur le serveur d’application

3. Utiliser un service Web en créant un client.

 Le développement des services Web comporte deux facettes:


 Côté Serveur : code pour le traitement du service Web.
 Côté Client : code qui permet d’appeler un service Web.
 La majorité des langages de programmation orientés Web supportent le développement de
services Web
 Java, PHP, C#, C++, …

 Différents Frameworks (ou outils) de développement de Services Web existent :


 JAX‐WS Spécification Sun (jax‐ws.dev.java.net)
 AXIS 1 et 2 Apache (ws.apache.org/axis et ws.apache.org/axis2)
 CXF Apache (cxf.apache.org)
 XFire Codehaus (xfire.codehaus.org)
 JBossWS JBoss (www.jboss.org/jbossws)
 Et très récemment le framework MVC AngularJS2
 ………
1- JAX‐WS
JAX‐WS est l’acronyme Java API for XML Web Services

 Java API for XML Web Services (JAX‐WS) est un langage de programmation Java (API)
pour la création des services Web. C’est une partie de java EE platform de Sun
Microsystems.
 JAX‐WS est à la fois un standard et une implémentation
 Le développement de Web Services 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 JAX‐WS requiert
simplement l’utilisation d’annotations Java.
 Aucun fichier de déploiement n’est requis.
 JAX‐WS permet d’assurer l’indépendance du protocole (SOAP) et du transport (HTTP).
 Les annotations jouent un rôle important dans JAX‐WS 2.0, en effet :
1. Les annotations sont utilisées pour lier (mapping) java à WSDL et au Schema
XML XSD.
2. Les annotations sont utilisées lors de la phase d’exécution pour contrôler comment
JAX‐WS traite et réagit aux invocations de services web.
 Les annotations utilisées par JAX‐WS s’appuie sur un ensemble de JSR (Java Specification
Requests) :

JSR est un système normalisé ayant pour but de faire évoluer la plateforme java :

 JSR 224 : Java API for XML web service ( JAX‐WS) 2.0
 JSR 181 : Web Services Metadata for Java Platform
 JSR 222 : Java architecture for XML Binding (JAXB) 2.0
 JSR 250 : Common Annotation for the Java platform.

2- Développement Serveur
 Il existe deux façons pour développer un Web Service avec JAX‐WS :
 Approche Bottom / Up (à partir d’un POJO)
 Créer et annoter un POJO,
 Compiler, déployer et tester un service web ,
 Le document WSDL est automatiquement généré.
 Approche Top / Down (à partir d’un document WSDL)
 Génération des différentes classes Java (JAXB [JSR 222]) et squelette du Web
Service en utilisant l’outil WSIMPORT.
 Compléter le squelette de classe de l’implémentation,
 Compiler, déployer et tester le WS.

Développer un Service Web à partir de sa description WSDL

 Outils utilisés
 Frameworks: Axis2 , Apache CXF (framework java/WebServices) , Spring WS
 API JAX‐WS et JAX‐RS, Etc.
 Serveurs
 Tomcat,
 Glassfish, TomEE Plus, etc.
3- Développement Serveur : Bottom /Up
 L’approche Bottom / Up consiste à démarrer le développement ou la création à partir d’une
classe Java (POJO).
 Adjonction de l’annotation @WebService. Ceci permet d’annoter la classe java afin de la
définir en tant que web service.
 Adjonction de l’annotation @WebMethod. Ceci permet de définir la (ou les) méthode(s) du
service web crée, ainsi toutes les méthodes du POJO sont des opérations du Web service.
 Compilation et déploiement de l’application sur un serveur d’application.
 Le document WSDL est généré automatiquement en respectant les valeurs par défauts:
 URL du WSDL : http://monserveur/app/Service?WSDL

4- Overview of JWS Annotation


 Les annotations sont contenus dans des packages qui doivent être importé par chaque
JSR‐181, JWS source file.
 Les fichiers d’annotations JWS (The Java Web Service) sont le pilier du web service. En
effet, il contient le code java qui détermine comment le web service doit se comporter.
 Le fichier JWS est un fichier de classe java qui utilise les annotations pour spécifier les
caractéristiques du web service.

Ces fichiers sont par exemple :

javax.jws.WebService

Marque la classe java comme une implémentation d’un service web

javax.jws.WebMethod

Personnalise une méthode java comme étant une opération du service web créé.

5- Exemple : Implémentation du Web Service HelloWorld


6- Les Annotations JWS
 JAX‐WS repose sur l’utilisation massive d’annotations pour la configuration d’un Service
Web
 JSR utilisées (JSR 224, 222, 181 et 250)
 Les principales annotations utilisées sont les suivantes :
o @WebService : POJO implémentant un Service Web
o @WebMethod : Paramétrer une opération
o @WebParam : Paramétrer un message d’entré
o @WebResult : Paramétrer un message de sortie
o @WebFault : Paramétrer un message fault
 Nous détaillerons chacune des annotations de manière à découvrir les paramètres disponibles.

7- Annotation @WebService (javax.jws. WebService)


 Annote une classe Java pour définir l’implémentation du service Web.
 Annote une interface Java (SEI :Service Endpoint Interface) pour définir la description du
Service Web
 Attributs de l’annotation @WebService sont comme suit :
 String Name : nom du Service Web
 String EndpointInterface : le nom de l’interface décrivant le Service Web (This
annotation allows the developer to separate the interface contract from the
implementation)
 String PortName : nom du port
 String ServiceName : nom du service du service Web(Used as the name of the
wsdl:service when mapped to WSDL 1.1. )
 String TargetNamespace : Indique le namespace du Service Web.
 String WSDJLocation : Indique l'adresse Web ou l’emplacement du document
WSDL décrivant le service Web.

8- Annotation @WebMethod (javax.jws. WebMethod)


 Annote une méthode d’une classe Java exposée comme une opération du Service.
 Les Attributs de l’annotation @WebMethod sont comme suit :
 String Action: Définit l'action de l’opération. Dans le cas d’un binding SOAP, cela
détermine la valeur de l’action SOAP.
 Boolean Exclude : précise que la méthode ne doit pas être exposée comme une
opération (indique si une méthode doit être exclue du service Web). Ne pas utiliser
dans une interface Java. La valeur par défaut est false.
 String Operation name : précise le nom de l’attribut name défini dans l’élément
opération du document WSDL. La valeur par défaut est le nom de la méthode Java.
9- Annotation @WebParam (javax.jws. WebParam)
 Décrit la relation entre un paramètre d’entré d’une méthode et un message part d’une
opération
 Les Attributs de l’annotation @WebParam sont comme suit :
 Boolean Header : précise si le paramètre doit être transmis dans l’en‐tête de message
(true) ou dans le corps de message (false).
 String Name : Nom du paramètre d’entré.
 String PartName : Définit le nom de l'attribut wsdl:part représentant ce paramètre.
 String TargetNamespace : l’espace de nommage de ce paramètre.

10- Annotation @WebResult (javax.jws. WebResult)


 Décrit la relation entre un paramètre de sortie d’une méthode et un message part d’une
opération.
 Les Attributs de l’annotation @WebResult sont comme suit :
 Boolean Header : précise si le paramètre de sortie doit être transmis dans l’en‐tête de
message (true) ou dans le corps de message (false).
 String Name : Nom du paramètre de sortie.
 String PartName : Définit le nom de l'attribut wsdl:part représentant ce paramètre de
sortie.
 String TargetNamespace : l’espace de nommage de ce paramètre de sortie.

11- Concrètement ça donne quoi?


Vous allez faire le TP qui est divisé en deux parties:

1. Etude des différents tutoriaux sur la création du service web avec l’environnement
choisis (Voir TP N° 2).
2. Création et déploiement de services web avec par exemple :
 Java , L’IDE NetBeans et Le serveur d’applications GlassFish