SlideShare une entreprise Scribd logo
1  sur  16
Mini projet : Service Web

Réalisés par
El HeniNazih
Ezzair Mayssa
Elghoul Sinda

2013-2014
Introduction
Un service

webest

un

programme

informatique

de

la

famille

des technologies

web permettant la communication et l'échange de données entre applications et systèmes
hétérogènes dans des environnements distribués. Il s'agit donc d'un ensemble de
fonctionnalités exposées sur internet ou sur un intranet, par et pour des applications ou
machines, sans intervention humaine, de manière synchrone ou asynchrone. En effet, le
protocole de communication est défini dans le cadre de la norme SOAP dans la signature du
service exposé (WSDL).
I. Présentation
Un document WSDL se compose d'un ensemble d'éléments décrivant les types de données
utilisés par le service, les messages que le service peut recevoir, ainsi que les liaisons SOAP
associées à chaque message. Le schéma suivant illustre la structure du langage WSDL qui est
un document XML, en décrivant les relations entre les sections constituant un document
WSDL.

1. Structure de document WSDL :

 Contenu de fichier WSDL :
Un fichier WSDL contient donc sept éléments.






Types : fournit la définition de types de données utilisés pour décrire les messages
échangés.
Messages : représente une définition abstraire (noms et types) des données en cours
de transmission.
PortTypes : décrit un ensemble d'opérations. Chaque opération a zéro ou un
message en entrée, zéro ou plusieurs messages de sortie ou d'erreurs.
Binding : spécifie une liaison entre un <portType> et un protocole concret (SOAP,
HTTP...).
Service : indique les adresses de port de chaque liaison.
Port : représente un point d'accès de services défini par une adresse réseau et une
liaison.
 Opération : c'est la description d'une action exposée dans le port.


Le document WSDL peut être divisé en deux parties. Une partie pour les définitions
abstraites, tandis que la deuxième contient les descriptions concrètes.

2. SOAP (Simple Object Access Protocol)
Les interactions entre services Web s'effectuent par le biais d'envois de messages structurés
au format XML. Le protocole SOAP (Simple Object Access Protocol) fournit le cadre
permettant ces échanges.

II. Type de liaison SOAP vs type de liaison WSDL :
Il existe deux modèles de style de communication qui sont utilisés pour traduire une liaison à
un corps de message SOAP/ WSDL.
Ils sont :
 Document
 RPC
L'avantage d'utiliser un modèle de style du document est que vous pouvez structurer le
corps SOAP comme vous le voulez aussi que le contenu du corps du message SOAP est une
instance XML arbitraire.
Cependant, avec un modèle de style RPC, la structure du corps de la demande SOAP doit
contenir à la fois le nom de l'opération et l'ensemble des paramètres de la méthode. Le
modèle de type RPC assume une structure spécifique à l'instance XML contenus dans le
corps du message.

 RPC VS document :
 RPC :
Le corps d'un message SOAP de type RPC est construit d'une manière spécifique, qui est
défini dans la norme SOAP. Il est construit autour de l'hypothèse que vous souhaitez appeler
le service Web comme vous le feriez appeler une fonction normale ou une méthode qui fait
partie de votre code d'application. Le corps du message contient un élément XML pour
chaque "paramètre" de la méthode. Ces éléments de paramètre sont enveloppés dans un
élément XML qui contient le nom de la méthode qui est appelée. La réponse renvoie une
valeur unique (codé en XML), tout comme une méthode de programmation. Le code WSDL
pour un service Web de style RPC est moins complexe que celle d'un service Web le
document de style, mais ce n'est pas un gros problème car WSDL ne sont pas destinés à être
manipulés par les humains.
(-)Le principal inconvénient de style RPC est qu'il est étroitement couplé au code de
l'application. Cela signifie que si vous voulez changer l'ordre des Paramètres ou modifier les
types de ces paramètres, ce changement aura une incidence sur la définition du service Web
lui-même.

 Document:
Un service Web de style de document, ne contient pas de restrictions sur la façon dont le
corps SOAP doit être construit. Il vous permet d'inclure toutes les données XML que vous
voulez et aussi d'inclure un schéma pour cette XML.
(+)Le code WSDL pour un service Web style document est beaucoup plus complexe que celle
d'un service Web de style RPC, mais ce n'est pas un gros problème car WSDL ne sont pas
destinés à être manipulés par les humains.
(+)Services de style de document n'ont pas le problème d’un couplage fort, ils sont
faiblement couplés avec le code de l'application. (Par exemple, avec un service de style de
document, ce n'est pas grave si le programmeur décide d'utiliser un «float» au lieu d'un "int"
pour représenter un paramètre particulier, car il est tout converti en texte XML à la fin).
III. Service Web de Calcul : somme de deux valeurs :
a) Etapes de création de ce service web :
1. Créer interface de service web : Calcul.java
2. Créer le côté serveur implémentant le service :CalculWS .java
3. Créer l’éditeur de service : CalculPublisher.java

1. Créer interface de service web : « Calcul.java »
packagecom.objis ;
importjavax.jws.WebService;
importjavax.jws.soap.SOAPBinding;

@WebService
@SOAPBinding(style = SOAPBinding.Style.RPC)
public interface Calcul {
String calplus(int a, int b);
}

2. Créer

le

côté

serveur

implémentant

« CalculWS .java »
packagecom.objis ;
import javax.jws.WebService;

@WebService(endpointInterface = "com.objis.Calcul")
public class CalculWS implements Calcul {

@Override
public String calplus(int a, int b) {
int c = a+b;
return "le résulatat de l'operation plus est
}

"+c;

le

service :
}

3. Créer l’éditeur de service : « CalculPublisher.java »
packagecom.objis;
importjavax.xml.ws.Endpoint;
public class CalculPublisher {
public static final String URI="http://localhost:8888/calcul";
public static void main(String[ ] args) {
CalculWSimpl = new CalculWS();
Endpoint endpoint = Endpoint.publish(URI, impl);
boolean status = endpoint.isPublished();
System.out.println("ISAMM ING -->web service de calculplus est disponible
?"+status);} }

b) Lib :
c) Phase de Test :
 On

commence

l’exécution

du

programme

de

publication « CalculPublisher.java »

 L’URL lancé est :http://localhost:8888/calcul/

 On lance l’URL suivant http://localhost:8888/calcul?wsdl/ pour tester le service
web :
 Résultat de l’exécution :
IV. Version RESTful :
Réaliser la version RESTful

1. Installation :
 Jersey

2. Réalisation :
1. Créer nouveau projet : « RestfullCalcul »
2. Copier tout les lib de Jersey qui sonttéléchargé vers WEB-INF/lib
3. Les Class Java :
 Class « Calcul.java » :

package com.isamm.res;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.core.MediaType;

// Plain old Java Object it does not extend as class or implements
// an interface

// The class registers its methods for the HTTP GET request using the @GET
annotation.
// Using the @Produces annotation, it defines that it can deliver several
MIME types,
// text, XML and HTML.

// The browser requests per default the HTML MIME type.

//Sets the path to base URL + /calcul
//http://localhost:8080/RestfullCalcul

@Path("/calcul")
public class Calcul {
int a= 5;
int b = 6 ;

// This method is called if TEXT_PLAIN is request
@GET
@Produces(MediaType.TEXT_PLAIN)
public String sayPlainTextHello() {
return ""+a+b;
}

// This method is called if XML is request
@GET
@Produces(MediaType.TEXT_XML)
public String sayXMLHello() {
int d= a+b ;
return "<?xml version="1.0"?>" + "<calcul> Nous les ingénieurs du web
ISAMM"+d+ "</calcul>";
}

// This method is called if HTML is request
@GET
@Produces(MediaType.TEXT_HTML)
public String sayHtmlHello() {
int d= a+b ;
return "<html> " + "<title>" + "Nous les ingénieurs du web ISAMM"
+"</title>"
+ "<body><h1>" + "le resulat du calcul est

:"+d+"</body></h1>"

+ "</html> ";
}
}

Cette classe elle-même s'inscrire comme une ressource Get via l'annotation @GET.
Via l'annotation @Produit elle définit ce qu’il délivre le texte et les types MIME HTML. Il
définit également par l’annotation @Path que son service est disponible sous Calcul l’URL.

4. Définirai« Jersey Servlet dispatcher »
On inscrire Jersey comme le régulateur de Servet pour les demandes REST.
On modifier le fichier web.xml :

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID"
version="3.0">
<display-name>RestfullCalcul</display-name>
<servlet>
<servlet-name>Jersey REST Service</servlet-name>
<servletclass>com.sun.jersey.spi.container.servlet.ServletContainer</servlet-class>
<init-param>
<param-name>com.sun.jersey.config.property.packages</param-name>
<param-value>com.isamm.res</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>Jersey REST Service</servlet-name>
<url-pattern>/rest/*</url-pattern>
</servlet-mapping>
</web-app>

Le paramètre"com.sun.jersey.config.property.package" définie dans quel package jersey va
chercher les classes de service Web.

1. Exécuter le service :
On test le service par: "http://localhost:8080/de.vogella.jersey.first/rest/Calcul/". Ce nom
est dériver de "display-name" qui est définie dans le fichier « web.xml ».
2. Créer le client :
Jersey contient une bibliothèque de client REST qui peut être utilisé pour l'essai ou de
construire un véritable client en Java. Alternative on peut utiliser Apache HttpClient pour
créer un client.

Créer un nouveau "de.vogella.jersey.first.client" Java et ajouter les jars de jersey pour le
projet et le chemin de génération de projet. Et on crée la class suivante :
packagecom.isamm.client;
importjava.net.URI;
importjavax.ws.rs.core.MediaType;
importjavax.ws.rs.core.UriBuilder;
import com.sun.jersey.api.client.Client;
importcom.sun.jersey.api.client.ClientResponse;
importcom.sun.jersey.api.client.WebResource;
importcom.sun.jersey.api.client.config.ClientConfig;
importcom.sun.jersey.api.client.config.DefaultClientConfig;
public class TestClient {
public static void main(String[] args) {
ClientConfigconfig = new DefaultClientConfig();
Client client = Client.create(config);
WebResource service = client.resource(getBaseURI());
// Fluent interfaces
System.out.println(service.path("rest").path("calcul").accept(MediaType.TEX
T_PLAIN).get(ClientResponse.class).toString());
// Get plain text
//
System.out.println(service.path("rest").path("calcul").accept(MediaType.TEX
T_PLAIN).get(String.class));
// Get XML
System.out.println(service.path("rest").path("calcul").accept(MediaType.TEX
T_XML).get(String.class));
// The HTML
System.out.println(service.path("rest").path("calcul").accept(MediaType.TEX
T_HTML).get(String.class));
}
private static URI getBaseURI() {
return UriBuilder.fromUri("http://localhost:8080/RestfullCalcul").build();
}
}

 On prend le service de calcul avec Get de protocole Http

3. Résultat de l’exécution :
V.

Problèmesrésolue:
 Aucune class Servlet n’a été spécifiée pour la Servlet Jersey reset service

Contenu connexe

Tendances

eServices-Tp1: Web Services
eServices-Tp1: Web ServiceseServices-Tp1: Web Services
eServices-Tp1: Web ServicesLilia Sfaxi
 
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
 
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
 
Tp1 - WS avec JAXWS
Tp1 - WS avec JAXWSTp1 - WS avec JAXWS
Tp1 - WS avec JAXWSLilia Sfaxi
 
Services web soap-el-habib-nfaoui
Services web soap-el-habib-nfaouiServices web soap-el-habib-nfaoui
Services web soap-el-habib-nfaouiEl Habib NFAOUI
 
Tp3 - Application SOA avec BPEL
Tp3 - Application SOA avec BPELTp3 - Application SOA avec BPEL
Tp3 - Application SOA avec BPELLilia Sfaxi
 
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
 
Support de cours EJB 3 version complète Par Mr Youssfi, ENSET, Université Ha...
Support de cours EJB 3 version complète Par Mr  Youssfi, ENSET, Université Ha...Support de cours EJB 3 version complète Par Mr  Youssfi, ENSET, Université Ha...
Support de cours EJB 3 version complète Par Mr Youssfi, ENSET, Université Ha...ENSET, Université Hassan II Casablanca
 
Cours 3 les objets distants rmi corba
Cours 3 les objets distants rmi corbaCours 3 les objets distants rmi corba
Cours 3 les objets distants rmi corbaMariem ZAOUALI
 
Appels de procédures distants (RPC)
Appels de procédures distants (RPC)Appels de procédures distants (RPC)
Appels de procédures distants (RPC)Heithem Abbes
 
Java Server Faces (JSF)
Java Server Faces (JSF)Java Server Faces (JSF)
Java Server Faces (JSF)Heithem Abbes
 
Chp2 - Vers les Architectures Orientées Services
Chp2 - Vers les Architectures Orientées ServicesChp2 - Vers les Architectures Orientées Services
Chp2 - Vers les Architectures Orientées ServicesLilia Sfaxi
 
Mise en oeuvre des Frameworks de Machines et Deep Learning pour les Applicati...
Mise en oeuvre des Frameworks de Machines et Deep Learning pour les Applicati...Mise en oeuvre des Frameworks de Machines et Deep Learning pour les Applicati...
Mise en oeuvre des Frameworks de Machines et Deep Learning pour les Applicati...ENSET, Université Hassan II Casablanca
 
Android-Tp1: éléments graphiques de base et intents
Android-Tp1: éléments graphiques de base et intentsAndroid-Tp1: éléments graphiques de base et intents
Android-Tp1: éléments graphiques de base et intentsLilia Sfaxi
 
Architectures orientées services
Architectures orientées servicesArchitectures orientées services
Architectures orientées servicesDonia Hammami
 

Tendances (20)

eServices-Tp1: Web Services
eServices-Tp1: Web ServiceseServices-Tp1: Web Services
eServices-Tp1: Web Services
 
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
 
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)
 
Web services SOAP et REST
Web services  SOAP et RESTWeb services  SOAP et REST
Web services SOAP et REST
 
Tp1 - WS avec JAXWS
Tp1 - WS avec JAXWSTp1 - WS avec JAXWS
Tp1 - WS avec JAXWS
 
Présentation SOA
Présentation SOAPrésentation SOA
Présentation SOA
 
Services web soap-el-habib-nfaoui
Services web soap-el-habib-nfaouiServices web soap-el-habib-nfaoui
Services web soap-el-habib-nfaoui
 
Tp3 - Application SOA avec BPEL
Tp3 - Application SOA avec BPELTp3 - Application SOA avec BPEL
Tp3 - Application SOA avec BPEL
 
Support NodeJS avec TypeScript Express MongoDB
Support NodeJS avec TypeScript Express MongoDBSupport NodeJS avec TypeScript Express MongoDB
Support NodeJS avec TypeScript Express MongoDB
 
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
 
Support de cours EJB 3 version complète Par Mr Youssfi, ENSET, Université Ha...
Support de cours EJB 3 version complète Par Mr  Youssfi, ENSET, Université Ha...Support de cours EJB 3 version complète Par Mr  Youssfi, ENSET, Université Ha...
Support de cours EJB 3 version complète Par Mr Youssfi, ENSET, Université Ha...
 
Cours 3 les objets distants rmi corba
Cours 3 les objets distants rmi corbaCours 3 les objets distants rmi corba
Cours 3 les objets distants rmi corba
 
Appels de procédures distants (RPC)
Appels de procédures distants (RPC)Appels de procédures distants (RPC)
Appels de procédures distants (RPC)
 
Support de Cours JSF2 Première partie Intégration avec Spring
Support de Cours JSF2 Première partie Intégration avec SpringSupport de Cours JSF2 Première partie Intégration avec Spring
Support de Cours JSF2 Première partie Intégration avec Spring
 
Java Server Faces (JSF)
Java Server Faces (JSF)Java Server Faces (JSF)
Java Server Faces (JSF)
 
Chp2 - Vers les Architectures Orientées Services
Chp2 - Vers les Architectures Orientées ServicesChp2 - Vers les Architectures Orientées Services
Chp2 - Vers les Architectures Orientées Services
 
Mise en oeuvre des Frameworks de Machines et Deep Learning pour les Applicati...
Mise en oeuvre des Frameworks de Machines et Deep Learning pour les Applicati...Mise en oeuvre des Frameworks de Machines et Deep Learning pour les Applicati...
Mise en oeuvre des Frameworks de Machines et Deep Learning pour les Applicati...
 
Android-Tp1: éléments graphiques de base et intents
Android-Tp1: éléments graphiques de base et intentsAndroid-Tp1: éléments graphiques de base et intents
Android-Tp1: éléments graphiques de base et intents
 
Support JEE Spring Inversion de Controle IOC et Spring MVC
Support JEE Spring Inversion de Controle IOC et Spring MVCSupport JEE Spring Inversion de Controle IOC et Spring MVC
Support JEE Spring Inversion de Controle IOC et Spring MVC
 
Architectures orientées services
Architectures orientées servicesArchitectures orientées services
Architectures orientées services
 

En vedette

International Institute of technology (android)
International Institute of technology (android)International Institute of technology (android)
International Institute of technology (android)Nazih Heni
 
Cahier de charges Projet CRM "Buisness Team" J2EE
Cahier de charges Projet CRM "Buisness Team" J2EECahier de charges Projet CRM "Buisness Team" J2EE
Cahier de charges Projet CRM "Buisness Team" J2EENazih Heni
 
Software defined radio and the hacker
Software defined radio and the hackerSoftware defined radio and the hacker
Software defined radio and the hackerRob Gillen
 
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
 
Rapport de projet de fin d'étude licence informatique et multimédia
Rapport de projet de fin d'étude licence informatique et multimédiaRapport de projet de fin d'étude licence informatique et multimédia
Rapport de projet de fin d'étude licence informatique et multimédiaNazih Heni
 
Rapport PFE : Développement D'une application de gestion des cartes de fidéli...
Rapport PFE : Développement D'une application de gestion des cartes de fidéli...Rapport PFE : Développement D'une application de gestion des cartes de fidéli...
Rapport PFE : Développement D'une application de gestion des cartes de fidéli...Riadh K.
 
The Science of Memorable Presentations
The Science of Memorable PresentationsThe Science of Memorable Presentations
The Science of Memorable PresentationsEthos3
 
Rapport PFE : Développement D'une application de gestion des cartes de fidéli...
Rapport PFE : Développement D'une application de gestion des cartes de fidéli...Rapport PFE : Développement D'une application de gestion des cartes de fidéli...
Rapport PFE : Développement D'une application de gestion des cartes de fidéli...Riadh K.
 
Soutenance De Stage
Soutenance De StageSoutenance De Stage
Soutenance De Stageguesta3231e
 
présentation soutenance PFE.ppt
présentation soutenance PFE.pptprésentation soutenance PFE.ppt
présentation soutenance PFE.pptMohamed Ben Bouzid
 
Fight for Yourself: How to Sell Your Ideas and Crush Presentations
Fight for Yourself: How to Sell Your Ideas and Crush PresentationsFight for Yourself: How to Sell Your Ideas and Crush Presentations
Fight for Yourself: How to Sell Your Ideas and Crush PresentationsDigital Surgeons
 
Présentation Soutenance de Mémoire
Présentation Soutenance de MémoirePrésentation Soutenance de Mémoire
Présentation Soutenance de MémoireClaire Prigent
 
17 Ways to Design a Presentation People Want to View
17 Ways to Design a Presentation People Want to View17 Ways to Design a Presentation People Want to View
17 Ways to Design a Presentation People Want to ViewJim MacLeod
 
10 Powerful Body Language Tips for your next Presentation
10 Powerful Body Language Tips for your next Presentation10 Powerful Body Language Tips for your next Presentation
10 Powerful Body Language Tips for your next PresentationSOAP Presentations
 

En vedette (17)

International Institute of technology (android)
International Institute of technology (android)International Institute of technology (android)
International Institute of technology (android)
 
Cahier de charges Projet CRM "Buisness Team" J2EE
Cahier de charges Projet CRM "Buisness Team" J2EECahier de charges Projet CRM "Buisness Team" J2EE
Cahier de charges Projet CRM "Buisness Team" J2EE
 
Software defined radio and the hacker
Software defined radio and the hackerSoftware defined radio and the hacker
Software defined radio and the hacker
 
GNU Radio
GNU RadioGNU Radio
GNU Radio
 
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"
 
Rapport de projet de fin d'étude licence informatique et multimédia
Rapport de projet de fin d'étude licence informatique et multimédiaRapport de projet de fin d'étude licence informatique et multimédia
Rapport de projet de fin d'étude licence informatique et multimédia
 
Rapport PFE : Développement D'une application de gestion des cartes de fidéli...
Rapport PFE : Développement D'une application de gestion des cartes de fidéli...Rapport PFE : Développement D'une application de gestion des cartes de fidéli...
Rapport PFE : Développement D'une application de gestion des cartes de fidéli...
 
The Science of Memorable Presentations
The Science of Memorable PresentationsThe Science of Memorable Presentations
The Science of Memorable Presentations
 
Rapport PFE : Développement D'une application de gestion des cartes de fidéli...
Rapport PFE : Développement D'une application de gestion des cartes de fidéli...Rapport PFE : Développement D'une application de gestion des cartes de fidéli...
Rapport PFE : Développement D'une application de gestion des cartes de fidéli...
 
Soutenance De Stage
Soutenance De StageSoutenance De Stage
Soutenance De Stage
 
présentation soutenance PFE.ppt
présentation soutenance PFE.pptprésentation soutenance PFE.ppt
présentation soutenance PFE.ppt
 
Fight for Yourself: How to Sell Your Ideas and Crush Presentations
Fight for Yourself: How to Sell Your Ideas and Crush PresentationsFight for Yourself: How to Sell Your Ideas and Crush Presentations
Fight for Yourself: How to Sell Your Ideas and Crush Presentations
 
Présentation Soutenance de Mémoire
Présentation Soutenance de MémoirePrésentation Soutenance de Mémoire
Présentation Soutenance de Mémoire
 
5 Ways To Surprise Your Audience (and keep their attention)
5 Ways To Surprise Your Audience (and keep their attention)5 Ways To Surprise Your Audience (and keep their attention)
5 Ways To Surprise Your Audience (and keep their attention)
 
17 Ways to Design a Presentation People Want to View
17 Ways to Design a Presentation People Want to View17 Ways to Design a Presentation People Want to View
17 Ways to Design a Presentation People Want to View
 
10 Powerful Body Language Tips for your next Presentation
10 Powerful Body Language Tips for your next Presentation10 Powerful Body Language Tips for your next Presentation
10 Powerful Body Language Tips for your next Presentation
 
8 Tips for an Awesome Powerpoint Presentation
8 Tips for an Awesome Powerpoint Presentation8 Tips for an Awesome Powerpoint Presentation
8 Tips for an Awesome Powerpoint Presentation
 

Similaire à comment realiser un Service Web

2 20 presentations_generales_des_web_services
2 20 presentations_generales_des_web_services2 20 presentations_generales_des_web_services
2 20 presentations_generales_des_web_servicesCamus LANMADOUCELO
 
0570-les-services-web.pdfbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
0570-les-services-web.pdfbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb0570-les-services-web.pdfbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
0570-les-services-web.pdfbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbhindguendouz2000
 
Chap1 p1-introduction
Chap1 p1-introductionChap1 p1-introduction
Chap1 p1-introductionMoez Re
 
WebServices.pdfbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
WebServices.pdfbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbWebServices.pdfbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
WebServices.pdfbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbHINDGUENDOUZ
 
Flex, une techno RIA incontournable pour les futures app web ?
Flex, une techno RIA incontournable pour les futures app web ?Flex, une techno RIA incontournable pour les futures app web ?
Flex, une techno RIA incontournable pour les futures app web ?GreenIvory
 
intro-ws.pdfbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
intro-ws.pdfbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbintro-ws.pdfbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
intro-ws.pdfbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbHINDGUENDOUZ
 
les servlets-java EE
les  servlets-java EEles  servlets-java EE
les servlets-java EEYassine Badri
 
ASP.NET MVC, Web API & KnockoutJS
ASP.NET MVC, Web API & KnockoutJSASP.NET MVC, Web API & KnockoutJS
ASP.NET MVC, Web API & KnockoutJSRenaud Dumont
 
Introduction aux Technologies Web élaborée par Marouan OMEZZINE
Introduction aux Technologies Web élaborée par Marouan OMEZZINEIntroduction aux Technologies Web élaborée par Marouan OMEZZINE
Introduction aux Technologies Web élaborée par Marouan OMEZZINEMarouan OMEZZINE
 
S51 vos projets web services ibm i a l aide de php
S51   vos projets web services ibm i a l aide de phpS51   vos projets web services ibm i a l aide de php
S51 vos projets web services ibm i a l aide de phpGautier DUMAS
 
presentation_NET creation et consomation de services.pptx
presentation_NET creation et consomation de services.pptxpresentation_NET creation et consomation de services.pptx
presentation_NET creation et consomation de services.pptxhachchaneemsi
 
eServices-Tp2: bpel
eServices-Tp2: bpeleServices-Tp2: bpel
eServices-Tp2: bpelLilia Sfaxi
 

Similaire à comment realiser un Service Web (20)

2 20 presentations_generales_des_web_services
2 20 presentations_generales_des_web_services2 20 presentations_generales_des_web_services
2 20 presentations_generales_des_web_services
 
.NET DotNet CF - 3
.NET DotNet CF - 3.NET DotNet CF - 3
.NET DotNet CF - 3
 
0570-les-services-web.pdfbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
0570-les-services-web.pdfbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb0570-les-services-web.pdfbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
0570-les-services-web.pdfbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
 
education
educationeducation
education
 
Chap1 p1-introduction
Chap1 p1-introductionChap1 p1-introduction
Chap1 p1-introduction
 
Soap
SoapSoap
Soap
 
WebServices.pdfbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
WebServices.pdfbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbWebServices.pdfbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
WebServices.pdfbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
 
Flex, une techno RIA incontournable pour les futures app web ?
Flex, une techno RIA incontournable pour les futures app web ?Flex, une techno RIA incontournable pour les futures app web ?
Flex, une techno RIA incontournable pour les futures app web ?
 
Ter Web Service Intro
Ter Web Service IntroTer Web Service Intro
Ter Web Service Intro
 
Soap
SoapSoap
Soap
 
intro-ws.pdfbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
intro-ws.pdfbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbintro-ws.pdfbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
intro-ws.pdfbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
 
les servlets-java EE
les  servlets-java EEles  servlets-java EE
les servlets-java EE
 
OpenESB et BPEL
OpenESB et BPELOpenESB et BPEL
OpenESB et BPEL
 
Tutoriel web service
Tutoriel  web serviceTutoriel  web service
Tutoriel web service
 
ASP.NET MVC, Web API & KnockoutJS
ASP.NET MVC, Web API & KnockoutJSASP.NET MVC, Web API & KnockoutJS
ASP.NET MVC, Web API & KnockoutJS
 
Introduction aux Technologies Web élaborée par Marouan OMEZZINE
Introduction aux Technologies Web élaborée par Marouan OMEZZINEIntroduction aux Technologies Web élaborée par Marouan OMEZZINE
Introduction aux Technologies Web élaborée par Marouan OMEZZINE
 
S51 vos projets web services ibm i a l aide de php
S51   vos projets web services ibm i a l aide de phpS51   vos projets web services ibm i a l aide de php
S51 vos projets web services ibm i a l aide de php
 
Spring MVC
Spring MVCSpring MVC
Spring MVC
 
presentation_NET creation et consomation de services.pptx
presentation_NET creation et consomation de services.pptxpresentation_NET creation et consomation de services.pptx
presentation_NET creation et consomation de services.pptx
 
eServices-Tp2: bpel
eServices-Tp2: bpeleServices-Tp2: bpel
eServices-Tp2: bpel
 

Dernier

MaintenanceLa Maintenance Corrective.ppt
MaintenanceLa Maintenance Corrective.pptMaintenanceLa Maintenance Corrective.ppt
MaintenanceLa Maintenance Corrective.pptssusercbaa22
 
A3iFormations, organisme de formations certifié qualiopi.
A3iFormations, organisme de formations certifié qualiopi.A3iFormations, organisme de formations certifié qualiopi.
A3iFormations, organisme de formations certifié qualiopi.Franck Apolis
 
Présentation de cartes d'extension zhr..pptx
Présentation de cartes d'extension zhr..pptxPrésentation de cartes d'extension zhr..pptx
Présentation de cartes d'extension zhr..pptxpopzair
 
systeme expert_systeme expert_systeme expert
systeme expert_systeme expert_systeme expertsysteme expert_systeme expert_systeme expert
systeme expert_systeme expert_systeme expertChristianMbip
 
Boléro. pptx Film français réalisé par une femme.
Boléro.  pptx   Film   français   réalisé  par une  femme.Boléro.  pptx   Film   français   réalisé  par une  femme.
Boléro. pptx Film français réalisé par une femme.Txaruka
 
666148532-Formation-Habilitation-ELECTRIQUE-ENTREPRISE-MARS-2017.pptx
666148532-Formation-Habilitation-ELECTRIQUE-ENTREPRISE-MARS-2017.pptx666148532-Formation-Habilitation-ELECTRIQUE-ENTREPRISE-MARS-2017.pptx
666148532-Formation-Habilitation-ELECTRIQUE-ENTREPRISE-MARS-2017.pptxSAID MASHATE
 
LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...
LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...
LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...Faga1939
 
Formation M2i - Comprendre les neurosciences pour développer son leadership
Formation M2i - Comprendre les neurosciences pour développer son leadershipFormation M2i - Comprendre les neurosciences pour développer son leadership
Formation M2i - Comprendre les neurosciences pour développer son leadershipM2i Formation
 
Fondation Louis Vuitton. pptx
Fondation      Louis      Vuitton.   pptxFondation      Louis      Vuitton.   pptx
Fondation Louis Vuitton. pptxTxaruka
 
Mécanique Automobile LE TURBOCOMPRESSEUR.ppt
Mécanique Automobile LE TURBOCOMPRESSEUR.pptMécanique Automobile LE TURBOCOMPRESSEUR.ppt
Mécanique Automobile LE TURBOCOMPRESSEUR.pptssusercbaa22
 
Cours-irrigation_et_drainage_cours1.pptx
Cours-irrigation_et_drainage_cours1.pptxCours-irrigation_et_drainage_cours1.pptx
Cours-irrigation_et_drainage_cours1.pptxlamourfrantz
 
Bolero. pptx . Film de A nnne Fontaine
Bolero. pptx . Film   de  A nnne FontaineBolero. pptx . Film   de  A nnne Fontaine
Bolero. pptx . Film de A nnne FontaineTxaruka
 
Approche-des-risques-par-l’analyse-des-accidents-1.pptx
Approche-des-risques-par-l’analyse-des-accidents-1.pptxApproche-des-risques-par-l’analyse-des-accidents-1.pptx
Approche-des-risques-par-l’analyse-des-accidents-1.pptxssusercbaa22
 
Grammaire pour les élèves de la 6ème.doc
Grammaire pour les élèves de la  6ème.docGrammaire pour les élèves de la  6ème.doc
Grammaire pour les élèves de la 6ème.docKarimKhrifech
 
presentation l'interactionnisme symbolique finale.pptx
presentation l'interactionnisme symbolique  finale.pptxpresentation l'interactionnisme symbolique  finale.pptx
presentation l'interactionnisme symbolique finale.pptxMalikaIdseaid1
 
présentation sur l'échafaudage dans des travaux en hauteur
présentation sur l'échafaudage dans des travaux en hauteurprésentation sur l'échafaudage dans des travaux en hauteur
présentation sur l'échafaudage dans des travaux en hauteurdinaelchaine
 
Formation M2i - Intelligence Artificielle Comment booster votre productivité ...
Formation M2i - Intelligence Artificielle Comment booster votre productivité ...Formation M2i - Intelligence Artificielle Comment booster votre productivité ...
Formation M2i - Intelligence Artificielle Comment booster votre productivité ...M2i Formation
 
Sidonie au Japon . pptx Un film français
Sidonie    au   Japon  .  pptx  Un film françaisSidonie    au   Japon  .  pptx  Un film français
Sidonie au Japon . pptx Un film françaisTxaruka
 

Dernier (20)

Evaluación Alumnos de Ecole Victor Hugo
Evaluación Alumnos de Ecole  Victor HugoEvaluación Alumnos de Ecole  Victor Hugo
Evaluación Alumnos de Ecole Victor Hugo
 
MaintenanceLa Maintenance Corrective.ppt
MaintenanceLa Maintenance Corrective.pptMaintenanceLa Maintenance Corrective.ppt
MaintenanceLa Maintenance Corrective.ppt
 
A3iFormations, organisme de formations certifié qualiopi.
A3iFormations, organisme de formations certifié qualiopi.A3iFormations, organisme de formations certifié qualiopi.
A3iFormations, organisme de formations certifié qualiopi.
 
Présentation de cartes d'extension zhr..pptx
Présentation de cartes d'extension zhr..pptxPrésentation de cartes d'extension zhr..pptx
Présentation de cartes d'extension zhr..pptx
 
systeme expert_systeme expert_systeme expert
systeme expert_systeme expert_systeme expertsysteme expert_systeme expert_systeme expert
systeme expert_systeme expert_systeme expert
 
Boléro. pptx Film français réalisé par une femme.
Boléro.  pptx   Film   français   réalisé  par une  femme.Boléro.  pptx   Film   français   réalisé  par une  femme.
Boléro. pptx Film français réalisé par une femme.
 
666148532-Formation-Habilitation-ELECTRIQUE-ENTREPRISE-MARS-2017.pptx
666148532-Formation-Habilitation-ELECTRIQUE-ENTREPRISE-MARS-2017.pptx666148532-Formation-Habilitation-ELECTRIQUE-ENTREPRISE-MARS-2017.pptx
666148532-Formation-Habilitation-ELECTRIQUE-ENTREPRISE-MARS-2017.pptx
 
LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...
LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...
LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...
 
Formation M2i - Comprendre les neurosciences pour développer son leadership
Formation M2i - Comprendre les neurosciences pour développer son leadershipFormation M2i - Comprendre les neurosciences pour développer son leadership
Formation M2i - Comprendre les neurosciences pour développer son leadership
 
Fondation Louis Vuitton. pptx
Fondation      Louis      Vuitton.   pptxFondation      Louis      Vuitton.   pptx
Fondation Louis Vuitton. pptx
 
Mécanique Automobile LE TURBOCOMPRESSEUR.ppt
Mécanique Automobile LE TURBOCOMPRESSEUR.pptMécanique Automobile LE TURBOCOMPRESSEUR.ppt
Mécanique Automobile LE TURBOCOMPRESSEUR.ppt
 
Cours-irrigation_et_drainage_cours1.pptx
Cours-irrigation_et_drainage_cours1.pptxCours-irrigation_et_drainage_cours1.pptx
Cours-irrigation_et_drainage_cours1.pptx
 
Bolero. pptx . Film de A nnne Fontaine
Bolero. pptx . Film   de  A nnne FontaineBolero. pptx . Film   de  A nnne Fontaine
Bolero. pptx . Film de A nnne Fontaine
 
Approche-des-risques-par-l’analyse-des-accidents-1.pptx
Approche-des-risques-par-l’analyse-des-accidents-1.pptxApproche-des-risques-par-l’analyse-des-accidents-1.pptx
Approche-des-risques-par-l’analyse-des-accidents-1.pptx
 
Grammaire pour les élèves de la 6ème.doc
Grammaire pour les élèves de la  6ème.docGrammaire pour les élèves de la  6ème.doc
Grammaire pour les élèves de la 6ème.doc
 
presentation l'interactionnisme symbolique finale.pptx
presentation l'interactionnisme symbolique  finale.pptxpresentation l'interactionnisme symbolique  finale.pptx
presentation l'interactionnisme symbolique finale.pptx
 
présentation sur l'échafaudage dans des travaux en hauteur
présentation sur l'échafaudage dans des travaux en hauteurprésentation sur l'échafaudage dans des travaux en hauteur
présentation sur l'échafaudage dans des travaux en hauteur
 
Pâques de Sainte Marie-Euphrasie Pelletier
Pâques de Sainte Marie-Euphrasie PelletierPâques de Sainte Marie-Euphrasie Pelletier
Pâques de Sainte Marie-Euphrasie Pelletier
 
Formation M2i - Intelligence Artificielle Comment booster votre productivité ...
Formation M2i - Intelligence Artificielle Comment booster votre productivité ...Formation M2i - Intelligence Artificielle Comment booster votre productivité ...
Formation M2i - Intelligence Artificielle Comment booster votre productivité ...
 
Sidonie au Japon . pptx Un film français
Sidonie    au   Japon  .  pptx  Un film françaisSidonie    au   Japon  .  pptx  Un film français
Sidonie au Japon . pptx Un film français
 

comment realiser un Service Web

  • 1. Mini projet : Service Web Réalisés par El HeniNazih Ezzair Mayssa Elghoul Sinda 2013-2014
  • 2. Introduction Un service webest un programme informatique de la famille des technologies web permettant la communication et l'échange de données entre applications et systèmes hétérogènes dans des environnements distribués. Il s'agit donc d'un ensemble de fonctionnalités exposées sur internet ou sur un intranet, par et pour des applications ou machines, sans intervention humaine, de manière synchrone ou asynchrone. En effet, le protocole de communication est défini dans le cadre de la norme SOAP dans la signature du service exposé (WSDL).
  • 3. I. Présentation Un document WSDL se compose d'un ensemble d'éléments décrivant les types de données utilisés par le service, les messages que le service peut recevoir, ainsi que les liaisons SOAP associées à chaque message. Le schéma suivant illustre la structure du langage WSDL qui est un document XML, en décrivant les relations entre les sections constituant un document WSDL. 1. Structure de document WSDL :  Contenu de fichier WSDL : Un fichier WSDL contient donc sept éléments.      Types : fournit la définition de types de données utilisés pour décrire les messages échangés. Messages : représente une définition abstraire (noms et types) des données en cours de transmission. PortTypes : décrit un ensemble d'opérations. Chaque opération a zéro ou un message en entrée, zéro ou plusieurs messages de sortie ou d'erreurs. Binding : spécifie une liaison entre un <portType> et un protocole concret (SOAP, HTTP...). Service : indique les adresses de port de chaque liaison.
  • 4. Port : représente un point d'accès de services défini par une adresse réseau et une liaison.  Opération : c'est la description d'une action exposée dans le port.  Le document WSDL peut être divisé en deux parties. Une partie pour les définitions abstraites, tandis que la deuxième contient les descriptions concrètes. 2. SOAP (Simple Object Access Protocol) Les interactions entre services Web s'effectuent par le biais d'envois de messages structurés au format XML. Le protocole SOAP (Simple Object Access Protocol) fournit le cadre permettant ces échanges. II. Type de liaison SOAP vs type de liaison WSDL : Il existe deux modèles de style de communication qui sont utilisés pour traduire une liaison à un corps de message SOAP/ WSDL. Ils sont :  Document  RPC L'avantage d'utiliser un modèle de style du document est que vous pouvez structurer le corps SOAP comme vous le voulez aussi que le contenu du corps du message SOAP est une instance XML arbitraire. Cependant, avec un modèle de style RPC, la structure du corps de la demande SOAP doit contenir à la fois le nom de l'opération et l'ensemble des paramètres de la méthode. Le modèle de type RPC assume une structure spécifique à l'instance XML contenus dans le corps du message.  RPC VS document :  RPC :
  • 5. Le corps d'un message SOAP de type RPC est construit d'une manière spécifique, qui est défini dans la norme SOAP. Il est construit autour de l'hypothèse que vous souhaitez appeler le service Web comme vous le feriez appeler une fonction normale ou une méthode qui fait partie de votre code d'application. Le corps du message contient un élément XML pour chaque "paramètre" de la méthode. Ces éléments de paramètre sont enveloppés dans un élément XML qui contient le nom de la méthode qui est appelée. La réponse renvoie une valeur unique (codé en XML), tout comme une méthode de programmation. Le code WSDL pour un service Web de style RPC est moins complexe que celle d'un service Web le document de style, mais ce n'est pas un gros problème car WSDL ne sont pas destinés à être manipulés par les humains. (-)Le principal inconvénient de style RPC est qu'il est étroitement couplé au code de l'application. Cela signifie que si vous voulez changer l'ordre des Paramètres ou modifier les types de ces paramètres, ce changement aura une incidence sur la définition du service Web lui-même.  Document: Un service Web de style de document, ne contient pas de restrictions sur la façon dont le corps SOAP doit être construit. Il vous permet d'inclure toutes les données XML que vous voulez et aussi d'inclure un schéma pour cette XML. (+)Le code WSDL pour un service Web style document est beaucoup plus complexe que celle d'un service Web de style RPC, mais ce n'est pas un gros problème car WSDL ne sont pas destinés à être manipulés par les humains. (+)Services de style de document n'ont pas le problème d’un couplage fort, ils sont faiblement couplés avec le code de l'application. (Par exemple, avec un service de style de document, ce n'est pas grave si le programmeur décide d'utiliser un «float» au lieu d'un "int" pour représenter un paramètre particulier, car il est tout converti en texte XML à la fin).
  • 6. III. Service Web de Calcul : somme de deux valeurs : a) Etapes de création de ce service web : 1. Créer interface de service web : Calcul.java 2. Créer le côté serveur implémentant le service :CalculWS .java 3. Créer l’éditeur de service : CalculPublisher.java 1. Créer interface de service web : « Calcul.java » packagecom.objis ; importjavax.jws.WebService; importjavax.jws.soap.SOAPBinding; @WebService @SOAPBinding(style = SOAPBinding.Style.RPC) public interface Calcul { String calplus(int a, int b); } 2. Créer le côté serveur implémentant « CalculWS .java » packagecom.objis ; import javax.jws.WebService; @WebService(endpointInterface = "com.objis.Calcul") public class CalculWS implements Calcul { @Override public String calplus(int a, int b) { int c = a+b; return "le résulatat de l'operation plus est } "+c; le service :
  • 7. } 3. Créer l’éditeur de service : « CalculPublisher.java » packagecom.objis; importjavax.xml.ws.Endpoint; public class CalculPublisher { public static final String URI="http://localhost:8888/calcul"; public static void main(String[ ] args) { CalculWSimpl = new CalculWS(); Endpoint endpoint = Endpoint.publish(URI, impl); boolean status = endpoint.isPublished(); System.out.println("ISAMM ING -->web service de calculplus est disponible ?"+status);} } b) Lib :
  • 8. c) Phase de Test :  On commence l’exécution du programme de publication « CalculPublisher.java »  L’URL lancé est :http://localhost:8888/calcul/  On lance l’URL suivant http://localhost:8888/calcul?wsdl/ pour tester le service web :
  • 9.  Résultat de l’exécution :
  • 10. IV. Version RESTful : Réaliser la version RESTful 1. Installation :  Jersey 2. Réalisation : 1. Créer nouveau projet : « RestfullCalcul » 2. Copier tout les lib de Jersey qui sonttéléchargé vers WEB-INF/lib
  • 11. 3. Les Class Java :  Class « Calcul.java » : package com.isamm.res; import javax.ws.rs.GET; import javax.ws.rs.Path; import javax.ws.rs.Produces; import javax.ws.rs.core.MediaType; // Plain old Java Object it does not extend as class or implements // an interface // The class registers its methods for the HTTP GET request using the @GET annotation. // Using the @Produces annotation, it defines that it can deliver several MIME types, // text, XML and HTML. // The browser requests per default the HTML MIME type. //Sets the path to base URL + /calcul //http://localhost:8080/RestfullCalcul @Path("/calcul") public class Calcul { int a= 5; int b = 6 ; // This method is called if TEXT_PLAIN is request @GET @Produces(MediaType.TEXT_PLAIN)
  • 12. public String sayPlainTextHello() { return ""+a+b; } // This method is called if XML is request @GET @Produces(MediaType.TEXT_XML) public String sayXMLHello() { int d= a+b ; return "<?xml version="1.0"?>" + "<calcul> Nous les ingénieurs du web ISAMM"+d+ "</calcul>"; } // This method is called if HTML is request @GET @Produces(MediaType.TEXT_HTML) public String sayHtmlHello() { int d= a+b ; return "<html> " + "<title>" + "Nous les ingénieurs du web ISAMM" +"</title>" + "<body><h1>" + "le resulat du calcul est :"+d+"</body></h1>" + "</html> "; } } Cette classe elle-même s'inscrire comme une ressource Get via l'annotation @GET. Via l'annotation @Produit elle définit ce qu’il délivre le texte et les types MIME HTML. Il définit également par l’annotation @Path que son service est disponible sous Calcul l’URL. 4. Définirai« Jersey Servlet dispatcher » On inscrire Jersey comme le régulateur de Servet pour les demandes REST.
  • 13. On modifier le fichier web.xml : <?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0"> <display-name>RestfullCalcul</display-name> <servlet> <servlet-name>Jersey REST Service</servlet-name> <servletclass>com.sun.jersey.spi.container.servlet.ServletContainer</servlet-class> <init-param> <param-name>com.sun.jersey.config.property.packages</param-name> <param-value>com.isamm.res</param-value> </init-param> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>Jersey REST Service</servlet-name> <url-pattern>/rest/*</url-pattern> </servlet-mapping> </web-app> Le paramètre"com.sun.jersey.config.property.package" définie dans quel package jersey va chercher les classes de service Web. 1. Exécuter le service : On test le service par: "http://localhost:8080/de.vogella.jersey.first/rest/Calcul/". Ce nom est dériver de "display-name" qui est définie dans le fichier « web.xml ».
  • 14. 2. Créer le client : Jersey contient une bibliothèque de client REST qui peut être utilisé pour l'essai ou de construire un véritable client en Java. Alternative on peut utiliser Apache HttpClient pour créer un client. Créer un nouveau "de.vogella.jersey.first.client" Java et ajouter les jars de jersey pour le projet et le chemin de génération de projet. Et on crée la class suivante : packagecom.isamm.client; importjava.net.URI; importjavax.ws.rs.core.MediaType; importjavax.ws.rs.core.UriBuilder; import com.sun.jersey.api.client.Client; importcom.sun.jersey.api.client.ClientResponse; importcom.sun.jersey.api.client.WebResource; importcom.sun.jersey.api.client.config.ClientConfig; importcom.sun.jersey.api.client.config.DefaultClientConfig; public class TestClient { public static void main(String[] args) { ClientConfigconfig = new DefaultClientConfig(); Client client = Client.create(config); WebResource service = client.resource(getBaseURI()); // Fluent interfaces System.out.println(service.path("rest").path("calcul").accept(MediaType.TEX T_PLAIN).get(ClientResponse.class).toString()); // Get plain text // System.out.println(service.path("rest").path("calcul").accept(MediaType.TEX T_PLAIN).get(String.class)); // Get XML System.out.println(service.path("rest").path("calcul").accept(MediaType.TEX T_XML).get(String.class)); // The HTML System.out.println(service.path("rest").path("calcul").accept(MediaType.TEX T_HTML).get(String.class));
  • 15. } private static URI getBaseURI() { return UriBuilder.fromUri("http://localhost:8080/RestfullCalcul").build(); } }  On prend le service de calcul avec Get de protocole Http 3. Résultat de l’exécution :
  • 16. V. Problèmesrésolue:  Aucune class Servlet n’a été spécifiée pour la Servlet Jersey reset service