You are on page 1of 14

Tutoriel sur le dveloppement de services Web

REST avec JAX-RS et Netbeans : Leon 3


Par Mickael BARON

Date de publication : 7 septembre 2011


Dernire mise jour : 15 janvier 2013

Le but de cette troisime leon est d'apprendre manipuler l'API JAX-RS pour le
dveloppement de services Web REST partir de la plateforme de dveloppement Java.
La leon insiste sur les dveloppements serveur et client d'un service Web REST.
Buts pdagogiques : transformation d'une classe Java en service Web REST,
manipulation des annotations JAX-RS, gnration de fichier WADL, utilisation de SOAPUI pour invoquer un service Web REST partir de WADL, utilisation de l'implmentation
JERSEY, utilisation de l'API cliente de JERSEY.
Pour ragir au contenu de ce tutoriel, un espace de dialogue vous est propos sur le forum .

Tutoriel sur le dveloppement de services Web REST avec JAX-RS et Netbeans : Leon 3 par Mickael BARON

Exercice 1 - Dvelopper un Service Web REST : Bonjour ENSMA........................................................................... 3


But........................................................................................................................................................................... 3
Description.............................................................................................................................................................. 3
tapes suivre.......................................................................................................................................................3
Exercice 2 - Dvelopper un Service Web REST : Interrogation et rservation de train..............................................6
But........................................................................................................................................................................... 6
Description.............................................................................................................................................................. 6
tapes suivre.......................................................................................................................................................6
Exercice 3 - Dvelopper un client de Service Web REST : Interrogation et rservation de train..............................11
But.........................................................................................................................................................................11
Description............................................................................................................................................................ 11
tapes suivre.....................................................................................................................................................11
Remerciements.......................................................................................................................................................... 14

-2-

http://mbaron.developpez.com/tutoriels/soa/developpement-services-web-rest-jaxrs-netbeans/

Tutoriel sur le dveloppement de services Web REST avec JAX-RS et Netbeans : Leon 3 par Mickael BARON

Exercice 1 - Dvelopper un Service Web REST : Bonjour ENSMA


But

Dvelopper un service web REST partir d'une classe Java.


Dployer sous Glashfish, tester le service web avec CURL.
Tester le service web avec SOAP-UI.
Tester le service web avec les outils de Netbeans.

Description
Le service Web de type REST de ce premier exercice consiste fournir un accs la ressource Bonjour ENSMA qui
permet de donner des messages diffrents selon la date du jour. Les services proposs n'autorisent que la lecture
la ressource (GET). Ces services de rcupration peuvent possder des paramtres. Enfin, le format de rcupration
de la ressource est du XML.

tapes suivre
Dmarrer l'environnement de dveloppement NetBeans.
Crer un nouveau projet File -> New Project... puis Java Web et choisir Web Application, faire Next.
Dans le nom du projet choisir le nom HelloENSMAWebServiceRestExercice1.
Comme type de serveur d'application, choisir GlassFish 3 et comme version Java EE choisir la version 7 puis faire
Next.
Ne rien choisir dans les options de Frameworks, puis faire Finish. L'initialisation d'un projet Web est en cours.
Crer un service Web REST partir de l'assistant de cration Web Services -> RESTful Web Services from
Patterns puis faire Next.
Choisir par la suite, l'option Simple Root Resource puis faire Next. Dans le champ Resource Package dfinir la
valeur soa.jaxrslabs.helloensmawebservicerestexercice1, dans le champ Path saisir la valeur helloensma, dans le
champ Class Name saisir la valeur HelloEnsma, puis faire Finish.
Par la suite, il est demand la manire dont les ressources sont gres par l'application, choisir la troisime proposition
(Create default REST servlet adaptor in web.xml). Notez que pour accder toutes les ressources il faudra prfixer
les chemins par /resources.
Depuis la nouvelle classe cre HelloEnsma, supprimer la mthode correspondant la cration d'une ressource
HelloEnsma (mthode putXml).
Dans le corps de la mthode String getXml() utilise pour rcuprer la ressource Bonjour ENSMA, recopier le contenu
suivant
1.
2.
3.
4.
5.

@GET
@Produces("application/xml")
public String getXml() {
return "<bonjour>Bonjour ENSMA</bonjour>";
}

-3-

http://mbaron.developpez.com/tutoriels/soa/developpement-services-web-rest-jaxrs-netbeans/

Tutoriel sur le dveloppement de services Web REST avec JAX-RS et Netbeans : Leon 3 par Mickael BARON

Faire un Clean and Build partir du projet HelloENSMAWebServiceRestExercice1 et s'assurer que le projet se
construit correctement.
Faire un Deploy partir du projet. Le serveur Glassfish doit dmarrer. Sur la console de Glassfish, un Web Service
doit avoir t dcouvert, un message similaire doit tre prsent :

Ouvrir une fentre d'un navigateur Web et tester la rcupration de la ressource Bonjour ENSMA (requte GET via
l'URL http://localhost:8080/HelloENSMAWebServiceRestExercice1/resources/helloensma).
Ajouter une nouvelle mthode Java getXmlWithParams dans la classe HelloEnsma qui permet de rcuprer la
ressource Bonjour ENSMA via des paramtres de requtes. Ces paramtres seront donns via le chemin et via l'entte de la requte en utilisant respectivement les annotations @PathParam et @HeaderParam. Recopier le code
suivant :
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.

@GET
@Path("{id}")
@Produces("application/xml")
public String getXmlWithParams(
@PathParam("id") String id,
@DefaultValue("all") @HeaderParam("name") String name) {
System.out.println(id);
System.out.println(name);
return "<bonjour>Bonjour ENSMA de la part de " + name + "</bonjour>";
}

Saisir l'URL suivante depuis votre navigateur Web pour tester la rcupration de la ressource Bonjour ENSMA : http://
localhost:8080/HelloENSMAWebServiceRestExercice1/resources/helloensma/27022011. Le message au format
XML est retourn au navigateur.
Pour envoyer des paramtres au niveau de l'en-tte de la requte, nous utiliserons l'outil CURL qui est un outil en
ligne de commande pour construire des requtes HTTP. Tlcharger et installer l'outil partir de l'URL suivante :
http://curl.haxx.se/.
Depuis une invite de commande saisir la commande suivante :

partir d'un navigateur Web, afficher le contrat de description WADL via l'URL suivante : http://localhost:8080/
HelloENSMAWebServiceRestExercice1/resources/application.wadl.
Utiliser l'outil de test de service Rest fourni par Netbeans (menu contextuel du projet et choisir l'lment Test RESTful
Web Services).
-4-

http://mbaron.developpez.com/tutoriels/soa/developpement-services-web-rest-jaxrs-netbeans/

Tutoriel sur le dveloppement de services Web REST avec JAX-RS et Netbeans : Leon 3 par Mickael BARON

Envoyer une requte HTTP de type GET pour rcuprer une ressource Bonjour ENSMA. Noter qu'il n'est pas possible
avec cet outil de modifier l'en-tte d'une requte HTTP.
Tlcharger et installer l'outil SOAP-UI partir de l'URL suivante : http://www.soapui.org/. Ouvrir SOAP-UI et crer
un projet partir de ce contrat de description.
Envoyer une requte HTTP de type GET pour rcuprer une ressource Bonjour ENSMA. Modifier cette requte de
faon transmettre galement les paramtres via le chemin et via l'en-tte de la requte HTTP.

-5-

http://mbaron.developpez.com/tutoriels/soa/developpement-services-web-rest-jaxrs-netbeans/

Tutoriel sur le dveloppement de services Web REST avec JAX-RS et Netbeans : Leon 3 par Mickael BARON

Exercice 2 - Dvelopper un Service Web REST : Interrogation et rservation de train


But

Dvelopper un service web REST partir d'une classe Java.


Utilisation d'un Sub-Resource Locator.
Mise en place d'un CRUD complet.
Dployer sous GlassFish et tester le service web avec CURL.

Description
Le service Web REST de ce deuxime exercice consiste crer un systme CRUD pour l'interrogation et la
rservation de trains. Les ressources manipules par les services sont donc un train et une rservation. Le service
Web REST doit pouvoir lister l'ensemble des trains, lister les trains qui satisfont un critre de recherche (ville de
dpart, ville d'arrive, jour de dpart et un intervalle de temps), de crer, de modifier, de supprimer et de lister une
rservation pour un client donn. Nous insisterons sur l'accessibilit des services et non sur le code mtier.

tapes suivre
Crer un nouveau projet File -> New Project... puis Java Web et choisir Web Application, faire Next.
Dans le nom du projet choisir le nom BookTrainWebServiceRestExercice2.
Comme type de serveur d'application, choisir GlassFish 3 et comme version Java EE choisir la version 6 puis faire
Next.
Ne rien choisir dans les options de Frameworks, puis faire Finish. L'initialisation d'un projet Web est en cours.
Crer la classe Train (dans le package soa.jaxrslabs.booktrainwebservicerestexercice2) qui modlise le concept de
Train et qui contient un attribut String numTrain (identifiant fonctionnel d'un train), un attribut String villeDepart (la ville
de dpart du train), un attribut String villeArrivee (la ville d'arrive du train), un attribut int heureDepart (heure de dpart
depuis la ville de dpart). Ajouter des modificateurs et des accesseurs sur tous les attributs. Voir le code suivant
1. @XmlRootElement(name = "train")
2. public class Train {
3.
4.
private String numTrain;
5.
private String villeDepart;
6.
private String villeArrivee;
7.
private int heureDepart; // Format : 1230 = 12h30
8.
9.
public Train() {
10.
}
11.
12.
public Train(String numTrain, String villeDepart, String villeArrivee, int heureDepart) {
13.
this.numTrain = numTrain;
14.
this.villeDepart = villeDepart;
15.
this.villeArrivee = villeArrivee;
16.
this.heureDepart = heureDepart;
17.
}
18.
19.
public int getHeureDepart() {
20.
return heureDepart;
21.
}
22.
23.
public void setHeureDepart(int heureDepart) {
24.
this.heureDepart = heureDepart;
25.
}
26.
-6-

http://mbaron.developpez.com/tutoriels/soa/developpement-services-web-rest-jaxrs-netbeans/

Tutoriel sur le dveloppement de services Web REST avec JAX-RS et Netbeans : Leon 3 par Mickael BARON

27. ... // A complter...


28. }

Crer la classe BookTrainBD qui sert persister toutes les informations concernant le service Web de cet exercice.
1. public class BookTrainBD {
2.
3.
private static List<Train> trains = new ArrayList<Train>();
4.
5.
static {
6.
trains.add(new Train("TR123", "Poitiers", "Paris", 1250));
7.
trains.add(new Train("TR127", "Poitiers", "Paris", 1420));
8.
trains.add(new Train("TR129", "Poitiers", "Paris", 1710));
9.
}
10.
11.
public static List<Train> getTrains() {
12.
return trains;
13.
}
14. }

Crer la classe TrainResource (dans le package soa.jaxrslabs.booktrainwebservicerestexercice2) permettant l'accs


aux services Web REST de la ressource Train. Dfinir comme chemin de ressource racine la valeur /trains (utilisation
de l'annotation @Path) puis ajouter trois mthodes qui permettent respectivement de retourner la liste des trains,
un train en fonction de son identifiant fonctionnel et une recherche de trains par critres passs en paramtre de la
requte (ville de dpart, ville d'arrive et heure de dpart). Pour cette dernire mthode, le sous-chemin associ est
/search. Noter que le format de retour des services est du XML.
1. @Path("/trains")
2. // Complter le format de reprsentation des services
3. public class TrainResource {
4.
5.
public TrainResource() {
6.
}
7.
8. // Complter la mthode HTTP utilise pour dclencher cette mthode
9.
public List<Train> getTrains() {
10.
System.out.println("getTrains");
11.
12.
return BookTrainBD.getTrains();
13.
}
14.
15. // Complter la mthode HTTP utilise pour dclencher cette mthode
16. // Complter le chemin suivant ce template numTrain-TR123 o TR123 est une chaine variable
17.
public Train getTrain(@PathParam("id") String numTrain) {
18.
System.out.println("getTrain");
19.
20.
for (Train current : BookTrainBD.getTrains()) {
21.
if (numTrain.equals(current.getNumTrain())) {
22.
return current;
23.
}
24.
}
25.
return null;
26.
}
27.
28. // Complter la mthode HTTP utilise pour dclencher cette mthode
29. // Complter de faon dfinir le chemin suivant /trains/search pour invoquer cette mthode
30.
public List<Train> searchTrainsByCriteria(@QueryParam("departure") String
departure, @QueryParam("arrival")
31.
String arrival, @QueryParam("arrivalhour") String arrivalHour) {
32.
System.out.println("searchTrainsByCriteria");
33.
34.
return BookTrainBD.getTrains().subList(0, 2);
35.
}
36. }

partir d'un navigateur Web invoquer les trois services dfinis ci-dessus.

-7-

http://mbaron.developpez.com/tutoriels/soa/developpement-services-web-rest-jaxrs-netbeans/

Tutoriel sur le dveloppement de services Web REST avec JAX-RS et Netbeans : Leon 3 par Mickael BARON

http://localhost:8080/BookTrainWebServiceRestExercice2/resources/trains
http://localhost:8080/BookTrainWebServiceRestExercice2/resources/trains/numTrain-TR123
http://localhost:8080/BookTrainWebServiceRestExercice2/resources/trains/search?
departure=poitiers&arrival=paris&arrivalhour=1250

Crer la classe BookTrain (toujours dans le package soa.jaxrslabs.booktrainwebservicerestexercice2) qui modlise


le concept de rservation de Train et qui contient un attribut String numBook (identifiant fonctionnel de la rservation
d'un train), un attribut Train currentTrain (association sur le train de la rservation), un attribut int numberPlaces
(nombre de places rserves). Ajouter des modificateurs et des accesseurs sur tous les attributs.
1. @XmlRootElement(name = "booktrain")
2. public class BookTrain {
3.
4.
private String bookNumber;
5.
6.
private Train currentTrain;
7.
8.
private int numberPlaces;
9.
10.
public String getBookNumber() {
11.
return bookNumber;
12.
}
13.
14.
public void setBookNumber(String bookNumber) {
15.
this.bookNumber = bookNumber;
16.
}
17.
18.
public Train getCurrentTrain() {
19.
return currentTrain;
20.
}
21.
22. ...
23. }

Complter la classe BookTrainBD de faon persister les informations concernant les services lis la rservation
de train.
1. public class BookTrainBD {
2.
3.
private static List<Train> trains = new ArrayList<Train>();
4.
5.
private static List<BookTrain> bookTrains = new ArrayList<BookTrain>();
6.
7.
static {
8.
trains.add(new Train("TR123", "Poitiers", "Paris", 1250));
9.
trains.add(new Train("TR127", "Poitiers", "Paris", 1420));
10.
trains.add(new Train("TR129", "Poitiers", "Paris", 1710));
11.
}
12.
13.
public static List<Train> getTrains() {
14.
return trains;
15.
}
16.
17.
public static List<BookTrain> getBookTrains() {
18.
return bookTrains;
19.
}
20. }

Crer la classe BookTrainResource (dans le package soa.jaxrslabs.booktrainwebservicerestexercice2) permettant


l'accs aux services Web REST de la ressource Rservation. Quatre mthodes sont dfinir. La premire
createBookTrain est invoque pour la cration d'une ressource Rservation (mthode POST). La deuxime
getBookTrains (mthode GET) est utilise pour lister l'ensemble des rservations. La troisime getBookTrain
(mthode GET) permet de retourner les informations d'une rservation partir d'un numro de rservation.
Finalement removeBookTrain (mthode DELETE) permet de supprimer une rservation.

-8-

http://mbaron.developpez.com/tutoriels/soa/developpement-services-web-rest-jaxrs-netbeans/

Tutoriel sur le dveloppement de services Web REST avec JAX-RS et Netbeans : Leon 3 par Mickael BARON

1. public class BookTrainResource {


2.
3. // Complter la mthode HTTP utilise pour dclencher cette mthode
4.
public String createBookTrain(String numTrain, int numberPlaces) {
5.
Train currentTrain = null;
6.
for (Train current : BookTrainBD.getTrains()) {
7.
if (current.getNumTrain().equals(numTrain)) {
8.
currentTrain = current;
9.
}
10.
}
11.
if (currentTrain == null) {
12.
return "";
13.
}
14.
15.
BookTrain newBookTrain = new BookTrain();
16.
newBookTrain.setNumberPlaces(numberPlaces);
17.
newBookTrain.setCurrentTrain(currentTrain);
18.
newBookTrain.setNumBook(Long.toString(System.currentTimeMillis()));
19.
BookTrainBD.getBookTrains().add(newBookTrain);
20.
21.
return newBookTrain.getNumBook();
22.
}
23.
24.
// Complter la mthode HTTP utilise pour dclencher cette mthode
25.
public List<BookTrain> getBookTrains() {
26.
System.out.println("getBookTrains");
27.
return BookTrainBD.getBookTrains();
28.
}
29.
30.
// Complter la mthode HTTP utilise pour dclencher cette mthode
31. // Complter le chemin de faon intgrer un template parameter (id)
32.
@Path("{id}")
33.
public BookTrain getBookTrain(@PathParam("id") String bookNumber) {
34.
List<BookTrain> bookTrains = BookTrainBD.getBookTrains();
35.
36.
for (BookTrain current : bookTrains) {
37.
if (current.getNumBook().equals(bookNumber)) {
38.
return current;
39.
}
40.
}
41.
return null;
42.
}
43.
44. // Complter la mthode HTTP utilise pour dclencher cette mthode
45.
// Complter le chemin de faon intgrer un template parameter (id)
46.
public void removeBookTrain(@PathParam("id") String bookNumber) {
47.
BookTrain currentBookTrain = null;
48.
for (BookTrain current : BookTrainBD.getBookTrains()) {
49.
if (current.getNumBook().equals(bookNumber)) {
50.
currentBookTrain = current;
51.
}
52.
}
53.
BookTrainBD.getBookTrains().remove(currentBookTrain);
54.
}
55. }

L'accs la ressource Rservation (via la classe BookTrainRessource) est obtenu via l'utilisation d'un sub-resource
locator. Complter la classe TrainResource.
public class TrainResource {
public TrainResource() {
}

// Complter de faon dfinir le chemin suivant /trains/booktrains pour invoquer cette mthode
public BookTrainResource getBookTrainResource() {
return new BookTrainResource();
}

-9-

http://mbaron.developpez.com/tutoriels/soa/developpement-services-web-rest-jaxrs-netbeans/

Tutoriel sur le dveloppement de services Web REST avec JAX-RS et Netbeans : Leon 3 par Mickael BARON

partir de CURL et SOAP-UI, invoquer chaque service (cration d'une rservation, liste les rservations, obtenir les
informations d'une rservation et supprimer la rservation cre).

- 10 -

http://mbaron.developpez.com/tutoriels/soa/developpement-services-web-rest-jaxrs-netbeans/

Tutoriel sur le dveloppement de services Web REST avec JAX-RS et Netbeans : Leon 3 par Mickael BARON

Exercice 3 - Dvelopper un client de Service Web REST : Interrogation et rservation de train


But

Dvelopper un client de service web REST partir de l'API JERSEY.


Cration des requtes via le patron Builder.

Description
Ce troisime exercice se propose de fournir un client pour l'accs au service Web REST dfini dans l'exercice 2. Une
interface graphique en Java/Swing permet de contrler les appels aux diffrents services.

tapes suivre
Crer un nouveau projet File -> New Project... puis Java et choisir Java Application, faire Next.
Pour le nom du projet choisir le nom BookTrainClientWebServiceRestExercice3.
Pour
le
nom
de
la
classe
principale
soa.jaxrslabs.booktrainclientwebservicerestexercice3.BookTrainClientMain (Create Main Class).

choisir

Ajouter les bibliothques Jersey (JAX-RS RI) et la bibliothque dcrivant l'API JAX-RS.
Complter la classe BookTrainClientMain partir du code ci-dessous. Noter que les traitements des trois boutons
seront complter par la suite (callGetTrains(), callGetBookTrains(), createBookTrains())
1. public class BookTrainClientMain extends JFrame {
2.
3.
public BookTrainClientMain() {
4.
super("Client Rservation Train");
5.
6.
this.initializeService();
7.
this.setLayout(new GridLayout(3,1,10,10));
8.
JPanel panelTrains = new JPanel();
9.
panelTrains.setLayout(new GridLayout(1,1));
10.
11.
JButton getTrains = new JButton("GetTrains");
12.
panelTrains.add(getTrains);
13.
getTrains.addActionListener(new ActionListener() {
14.
public void actionPerformed(ActionEvent e) {
15.
callGetTrains();
16.
}
17.
});
18.
19.
JPanel panelBookTrains = new JPanel();
20.
panelBookTrains.setLayout(new GridLayout(1,1));
21.
22.
JButton getBookTrains = new JButton("GetBookTrains");
23.
panelBookTrains.add(getBookTrains);
- 11 -

http://mbaron.developpez.com/tutoriels/soa/developpement-services-web-rest-jaxrs-netbeans/

Tutoriel sur le dveloppement de services Web REST avec JAX-RS et Netbeans : Leon 3 par Mickael BARON

24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56. }

getBookTrains.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
callGetBookTrains();
}
});
JPanel createBookTrainFormPanel = new JPanel();
createBookTrainFormPanel.setLayout(new GridLayout(1,3));
final JTextField numTrain = new JTextField();
final JTextField numberPlaces = new JTextField();
JButton createBookTrains = new JButton("CreateBookTrain");
createBookTrains.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
createBookTrains(numTrain.getText(), numberPlaces.getText());
}
});
createBookTrainFormPanel.add(createBookTrains);
createBookTrainFormPanel.add(numTrain);
createBookTrainFormPanel.add(numberPlaces);
this.add(panelTrains);
this.add(panelBookTrains);
this.add(createBookTrainFormPanel);

this.pack();
this.setVisible(true);

public static void main(String[] args) {


new BookTrainClientMain();
}

Ajouter une mthode initializeService() qui permet d'initialiser l'accs au service Web REST. Adapter l'URL selon
l'emplacement dtermin par l'exercice 2.
1. private void initializeService() {
2. ClientConfig config = new DefaultClientConfig();
3. Client client = Client.create(config);
4. service = client.resource(
5.
UriBuilder.fromUri("http://localhost:8080/BookTrainWebServiceRestExercice2/resources/").build());
6. }

Ajouter galement un attribut service de type WebResource.


Ajouter une mthode callGetTrains() qui permet de lister l'ensemble des trains.
private void callGetTrains() {
List<Train> result = service
.path("trains")
.accept(MediaType.APPLICATION_XML)
.get(new GenericType<List<Train>>() {});
for(Train current : result) {
System.out.println(current.getNumTrain() + " - " + current.getVilleDepart() + " - " +
current.getVilleArrivee() + " - " + current.getHeureDepart());
}
}

Recopier
dans
le
projet
BookTrainClientWebServiceRestExercice3
la
depuis
le
projet
BookTrainWebServiceRestExercice2
en
respectant
(soa.jaxrslabs.booktrainclientwebservicerestexercice3).

classe
Train
le
package

Ajouter une mthode createBookTrains(String numTrain, String numberPlaces) qui permet de crer une rservation
d'un train. Complter le code ci-dessous de faon prendre en compte les paramtres de requtes et l'appel une
mthode HTTP POST. Pour rappel, le service de cration retourne un numro de rservation (type String).
- 12 -

http://mbaron.developpez.com/tutoriels/soa/developpement-services-web-rest-jaxrs-netbeans/

Tutoriel sur le dveloppement de services Web REST avec JAX-RS et Netbeans : Leon 3 par Mickael BARON

private void createBookTrains(String numTrain, String numberPlaces) {


String numBook = service.path("trains")
.path("booktrains")
.???
.???
.???
System.out.println(numBook);
}

Ajouter une mthode callGetBookTrains() qui permet de rcuprer l'ensemble des rservations qui ont t cres.
Complter le code ci-dessous.
private void callGetBookTrains() {
List<BookTrain> result = service
.path("trains")
.path("booktrains")
.accept(MediaType.APPLICATION_XML)
.get(new GenericType<List<BookTrain>>() {});
for(BookTrain current : result) {
System.out.println(current.getNumBook() + " - " + current.getCurrentTrain().getNumTrain() + " - "
current.getNumberPlaces());
}
}

Recopier
dans
le
projet
BookTrainClientWebServiceRestExercice3
la
classe
depuis
le
projet
BookTrainWebServiceRestExercice2
en
respectant
le
(soa.jaxrslabs.booktrainclientwebservicerestexercice3).

BookTrain
package

Excuter le programme en vous assurant que le service Web REST dfini dans l'exercice 2 est dploy et
oprationnel.

- 13 -

http://mbaron.developpez.com/tutoriels/soa/developpement-services-web-rest-jaxrs-netbeans/

Tutoriel sur le dveloppement de services Web REST avec JAX-RS et Netbeans : Leon 3 par Mickael BARON

Remerciements

http://mbaron.developpez.com/soa/soapuilesson1 : Tests fonctionnels de Web Services avec SOAP-UI.


http://mbaron.developpez.com/soa/jaxwslesson2 : Dveloppement de Web Services avec JAX-WS et
Netbeans.

Je tiens remercier Claude Leloup pour sa relecture orthographique attentive de cet article.

- 14 -

http://mbaron.developpez.com/tutoriels/soa/developpement-services-web-rest-jaxrs-netbeans/

You might also like