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

Architectures n-tiers
Architectures n-tiersArchitectures n-tiers
Architectures n-tiersHeithem Abbes
 
eServices-Chp3: Composition de Services
eServices-Chp3: Composition de ServiceseServices-Chp3: Composition de Services
eServices-Chp3: Composition de ServicesLilia Sfaxi
 
Les architectures client serveur
Les architectures client serveurLes architectures client serveur
Les architectures client serveurAmeni Ouertani
 
Chp3 - Les Services Web
Chp3 - Les Services WebChp3 - Les Services Web
Chp3 - Les Services WebLilia Sfaxi
 
Introduction à React JS
Introduction à React JSIntroduction à React JS
Introduction à React JSAbdoulaye Dieng
 
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
 
Android-Tp5 : web services
Android-Tp5 : web servicesAndroid-Tp5 : web services
Android-Tp5 : web servicesLilia Sfaxi
 
eServices-Tp3: esb
eServices-Tp3: esbeServices-Tp3: esb
eServices-Tp3: esbLilia Sfaxi
 
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
 
Architectures orientées services
Architectures orientées servicesArchitectures orientées services
Architectures orientées servicesDonia Hammami
 
Jsf 110530152515-phpapp01
Jsf 110530152515-phpapp01Jsf 110530152515-phpapp01
Jsf 110530152515-phpapp01Eric Bourdet
 
Architectures 3-tiers (Web)
Architectures 3-tiers (Web)Architectures 3-tiers (Web)
Architectures 3-tiers (Web)Heithem Abbes
 

Tendances (20)

Architectures n-tiers
Architectures n-tiersArchitectures n-tiers
Architectures n-tiers
 
Soa & services web
Soa & services webSoa & services web
Soa & services web
 
Sécurité des Applications Web avec Json Web Token (JWT)
Sécurité des Applications Web avec Json Web Token (JWT)Sécurité des Applications Web avec Json Web Token (JWT)
Sécurité des Applications Web avec Json Web Token (JWT)
 
eServices-Chp3: Composition de Services
eServices-Chp3: Composition de ServiceseServices-Chp3: Composition de Services
eServices-Chp3: Composition de Services
 
Les architectures client serveur
Les architectures client serveurLes architectures client serveur
Les architectures client serveur
 
Chp3 - Les Services Web
Chp3 - Les Services WebChp3 - Les Services Web
Chp3 - Les Services Web
 
Présentation SOA
Présentation SOAPrésentation SOA
Présentation SOA
 
Chp2 - SOA
Chp2 - SOAChp2 - SOA
Chp2 - SOA
 
Web services SOAP et REST
Web services  SOAP et RESTWeb services  SOAP et REST
Web services SOAP et REST
 
Support de cours Spring M.youssfi
Support de cours Spring  M.youssfiSupport de cours Spring  M.youssfi
Support de cours Spring M.youssfi
 
Introduction à React JS
Introduction à React JSIntroduction à React JS
Introduction à React JS
 
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
 
Android-Tp5 : web services
Android-Tp5 : web servicesAndroid-Tp5 : web services
Android-Tp5 : web services
 
eServices-Tp3: esb
eServices-Tp3: esbeServices-Tp3: esb
eServices-Tp3: esb
 
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
 
Architectures orientées services
Architectures orientées servicesArchitectures orientées services
Architectures orientées services
 
Support JEE Servlet Jsp MVC M.Youssfi
Support JEE Servlet Jsp MVC M.YoussfiSupport JEE Servlet Jsp MVC M.Youssfi
Support JEE Servlet Jsp MVC M.Youssfi
 
Support de cours entrepise java beans ejb m.youssfi
Support de cours entrepise java beans ejb m.youssfiSupport de cours entrepise java beans ejb m.youssfi
Support de cours entrepise java beans ejb m.youssfi
 
Jsf 110530152515-phpapp01
Jsf 110530152515-phpapp01Jsf 110530152515-phpapp01
Jsf 110530152515-phpapp01
 
Architectures 3-tiers (Web)
Architectures 3-tiers (Web)Architectures 3-tiers (Web)
Architectures 3-tiers (Web)
 

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
 
Tp3 - Application SOA avec BPEL
Tp3 - Application SOA avec BPELTp3 - Application SOA avec BPEL
Tp3 - Application SOA avec BPELLilia Sfaxi
 
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
 

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
 
Tp3 - Application SOA avec BPEL
Tp3 - Application SOA avec BPELTp3 - Application SOA avec BPEL
Tp3 - Application SOA avec BPEL
 
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
 

Dernier

SUPPORT DE SUR COURS_GOUVERNANCE_SI_M2.pptx
SUPPORT DE SUR COURS_GOUVERNANCE_SI_M2.pptxSUPPORT DE SUR COURS_GOUVERNANCE_SI_M2.pptx
SUPPORT DE SUR COURS_GOUVERNANCE_SI_M2.pptxssuserbd075f
 
Computer Parts in French - Les parties de l'ordinateur.pptx
Computer Parts in French - Les parties de l'ordinateur.pptxComputer Parts in French - Les parties de l'ordinateur.pptx
Computer Parts in French - Les parties de l'ordinateur.pptxRayane619450
 
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
 
gestion des conflits dans les entreprises
gestion des  conflits dans les entreprisesgestion des  conflits dans les entreprises
gestion des conflits dans les entreprisesMajdaKtiri2
 
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
 
La nouvelle femme . pptx Film français
La   nouvelle   femme  . pptx  Film françaisLa   nouvelle   femme  . pptx  Film français
La nouvelle femme . pptx Film françaisTxaruka
 
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
 
COURS SVT 3 EME ANNEE COLLEGE 2EME SEM.pdf
COURS SVT 3 EME ANNEE COLLEGE 2EME SEM.pdfCOURS SVT 3 EME ANNEE COLLEGE 2EME SEM.pdf
COURS SVT 3 EME ANNEE COLLEGE 2EME SEM.pdfabatanebureau
 
Cours ofppt du Trade-Marketing-Présentation.pdf
Cours ofppt du Trade-Marketing-Présentation.pdfCours ofppt du Trade-Marketing-Présentation.pdf
Cours ofppt du Trade-Marketing-Présentation.pdfachrafbrahimi1
 

Dernier (10)

SUPPORT DE SUR COURS_GOUVERNANCE_SI_M2.pptx
SUPPORT DE SUR COURS_GOUVERNANCE_SI_M2.pptxSUPPORT DE SUR COURS_GOUVERNANCE_SI_M2.pptx
SUPPORT DE SUR COURS_GOUVERNANCE_SI_M2.pptx
 
Computer Parts in French - Les parties de l'ordinateur.pptx
Computer Parts in French - Les parties de l'ordinateur.pptxComputer Parts in French - Les parties de l'ordinateur.pptx
Computer Parts in French - Les parties de l'ordinateur.pptx
 
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.
 
gestion des conflits dans les entreprises
gestion des  conflits dans les entreprisesgestion des  conflits dans les entreprises
gestion des conflits dans les entreprises
 
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
 
La nouvelle femme . pptx Film français
La   nouvelle   femme  . pptx  Film françaisLa   nouvelle   femme  . pptx  Film français
La nouvelle femme . pptx Film français
 
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
 
COURS SVT 3 EME ANNEE COLLEGE 2EME SEM.pdf
COURS SVT 3 EME ANNEE COLLEGE 2EME SEM.pdfCOURS SVT 3 EME ANNEE COLLEGE 2EME SEM.pdf
COURS SVT 3 EME ANNEE COLLEGE 2EME SEM.pdf
 
Cours ofppt du Trade-Marketing-Présentation.pdf
Cours ofppt du Trade-Marketing-Présentation.pdfCours ofppt du Trade-Marketing-Présentation.pdf
Cours ofppt du Trade-Marketing-Présentation.pdf
 
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
 

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