Java EE 6 et GlassFish 3

publicité
Java EE 6
et GlassFish 3
Antonio Goncalves
Traduit par Éric Jacoboni,
avec la contribution technique de Éric Hébert
© 2010 Pearson Education France – Java EE 6 et GlassFish 3 – Antonio Goncalves
Pearson Education France a apporté le plus grand soin à la réalisation de ce livre afin de
vous fournir une information complète et fiable. Cependant, Pearson Education France
n’assume de responsabilités, ni pour son utilisation, ni pour les contrefaçons de brevets
ou atteintes aux droits de tierces personnes qui pourraient résulter de cette utilisation.
Les exemples ou les programmes présents dans cet ouvrage sont fournis pour
illustrer les descriptions théoriques. Ils ne sont en aucun cas destinés à une utilisation
commerciale ou professionnelle.
Pearson Education France ne pourra en aucun cas être tenu pour responsable des
préjudices ou dommages de quelque nature que ce soit pouvant résulter de l’utilisation
de ces exemples ou programmes.
Tous les noms de produits ou marques cités dans ce livre sont des marques déposées par
leurs ­propriétaires respectifs.
Publié par Pearson Education France
47 bis, rue des Vinaigriers
75010 PARIS
Tél. : 01 72 74 90 00
www.pearson.fr
Titre original : Beginning Java™ EE6
Platform with GlassFish™ 3
Traduction : Éric Jacoboni, avec la
contribution de Éric Hébert
Mise en pages : TyPAO
ISBN : 978-2-7440-2423-8
Copyright © 2010 Pearson Education France
Tous droits réservés
ISBN original : 978-1-4302-1954-5
Copyright © 2009 by Antonio Goncalves
Tous droits réservés
Édition originale publiée par Apress
2855 Telegraph Avenue
Berkeley, CA 94705
www.apress.com
Aucune représentation ou reproduction, même partielle, autre que celles prévues à l’article L. 122-5 2˚ et 3˚ a)
du code de la propriété intellectuelle ne peut être faite sans l’autorisation expresse de Pearson Education France
ou, le cas échéant, sans le respect des modalités prévues à l’article L. 122-10 dudit code.
All rights reserved. No part of this book may be reproduced or transmitted in any form or by any means,
electronic or mechanical, including photocopying, recording or by any information storage retrieval system,
without permission from Pearson Education, Inc.
© 2010 Pearson Education France – Java EE 6 et GlassFish 3 – Antonio Goncalves
Table des matières
Avant-propos....................................................................................................................... XIII
À propos de l’auteur .......................................................................................................... XIV
Remerciements.................................................................................................................... XV
Introduction......................................................................................................................... 1
1
Tour d’horizon de Java EE 6 ............................................................................................
5
Présentation de Java EE. ....................................................................................................... Un peu d’histoire............................................................................................................ Standards. ......................................................................................................................... Architecture. .................................................................................................................... Composants...................................................................................................................... Conteneurs. ...................................................................................................................... Services............................................................................................................................. Protocoles réseau............................................................................................................ Paquetages........................................................................................................................ Java Standard Edition.................................................................................................... 6
6
9
9
10
11
12
14
15
16
Spécifications de Java EE 6 ................................................................................................. 16
Nouveautés de Java EE 6...................................................................................................... Plus léger. ......................................................................................................................... Élagage.............................................................................................................................. Profils................................................................................................................................. Plus simple d’utilisation .............................................................................................. Plus riche.......................................................................................................................... Plus portable.................................................................................................................... 18
19
19
20
21
22
24
L’application CD-Bookstore . .............................................................................................. 24
Configuration de l’environnement de travail .................................................................... 26
26
27
34
JDK 1.6............................................................................................................................. Maven 2. ........................................................................................................................... JUnit 4............................................................................................................................... © 2010 Pearson Education France – Java EE 6 et GlassFish 3 – Antonio Goncalves
IV
2
Java EE 6 et GlassFish 3  Derby 10.5........................................................................................................................ GlassFish v3. ................................................................................................................... Installation de GlassFish............................................................................................... 39
42
48
Résumé..................................................................................................................................... 50
Persistance en Java ..............................................................................................................
51
Résumé de la spécification JPA. .......................................................................................... 52
53
54
54
Historique de la spécification...................................................................................... Nouveautés de JPA 2.0.................................................................................................. Implémentation de référence ...................................................................................... Comprendre les entités.......................................................................................................... ORM = Object-Relational Mapping.......................................................................... Interrogation des entités................................................................................................ Méthodes de rappel et écouteurs ............................................................................... Récapitulatif............................................................................................................................ 3
55
55
57
59
Écriture de l’entité Book............................................................................................... Écriture de la classe Main. ........................................................................................... Unité de persistance pour la classe Main. ................................................................ Compilation avec Maven.............................................................................................. Exécution de la classe Main avec Derby.................................................................. Écriture de la classe BookTest..................................................................................... Unité de persistance pour la classe BookTest ......................................................... Exécution de la classe BookTest avec Derby intégré ............................................ 60
61
62
63
64
66
67
69
70
Résumé..................................................................................................................................... 71
ORM : Object-Relational Mapping. ................................................................................
73
Association d’une entité........................................................................................................ 73
76
Configuration par exception. ....................................................................................... Associations élémentaires..................................................................................................... Tables................................................................................................................................. Clés primaires.................................................................................................................. Attributs............................................................................................................................ Types d’accès................................................................................................................... Collections de types de base........................................................................................ Association des types de base. .................................................................................... 77
78
80
85
92
95
97
Associations avec XML........................................................................................................ 99
© 2010 Pearson Education France – Java EE 6 et GlassFish 3 – Antonio Goncalves

Table des matières
Objets intégrables................................................................................................................... Types d’accès d’une classe intégrable....................................................................... Correspondance des relations............................................................................................... Relations dans les bases de données relationnelles. .............................................. Relations entre entités .................................................................................................. Chargement des relations. ............................................................................................ Tri des relations............................................................................................................... Traduction de l’héritage........................................................................................................ 4
V
102
104
106
107
109
121
122
Stratégies d’héritage. ..................................................................................................... Type de classes dans une hiérarchie d’héritage. ..................................................... 126
127
135
Résumé..................................................................................................................................... 139
Gestion des objets persistants............................................................................................
141
Interrogation d’une entité...................................................................................................... 142
Le gestionnaire d’entités....................................................................................................... 145
147
149
150
162
Obtenir un gestionnaire d’entités. .............................................................................. Contexte de persistance. ............................................................................................... Manipulation des entités............................................................................................... L’API de cache................................................................................................................ JPQL......................................................................................................................................... Select.................................................................................................................................. From................................................................................................................................... Where................................................................................................................................. Order By. .......................................................................................................................... Group By et Having....................................................................................................... Suppressions multiples . ............................................................................................... Mises à jour multiples................................................................................................... Requêtes................................................................................................................................... Requêtes dynamiques.................................................................................................... Requêtes nommées......................................................................................................... Requêtes natives. ............................................................................................................ Concurrence. ........................................................................................................................... 163
165
167
167
169
169
170
171
171
174
175
178
Gestion de version.......................................................................................................... Verrouillage optimiste................................................................................................... Verrouillage pessimiste................................................................................................. 179
182
183
185
Résumé..................................................................................................................................... 186
© 2010 Pearson Education France – Java EE 6 et GlassFish 3 – Antonio Goncalves
VI
5
6
Java EE 6 et GlassFish 3  Méthodes de rappel et écouteurs.......................................................................................
187
Cycle de vie d’une entité....................................................................................................... 187
Méthodes de rappel................................................................................................................ 189
Écouteurs (listeners). ............................................................................................................. 192
Résumé..................................................................................................................................... 198
Enterprise Java Beans. ........................................................................................................
199
Introduction aux EJB............................................................................................................. 200
201
202
204
205
206
207
Types d’EJB..................................................................................................................... Anatomie d’un EJB . ..................................................................................................... Conteneur d’EJB. ........................................................................................................... Conteneur intégré........................................................................................................... Injection de dépendances et JNDI.............................................................................. Méthodes de rappel et intercepteurs.......................................................................... Tour d’horizon de la spécification EJB............................................................................... Historique......................................................................................................................... Nouveautés d’EJB 3.1................................................................................................... EJB Lite. ........................................................................................................................... Récapitulatif............................................................................................................................ 7
209
209
210
211
L’entité Book.................................................................................................................... Le bean de session sans état BookEJB...................................................................... Unité de persistance pour le BookEJB...................................................................... La classe Main. ............................................................................................................... Compilation et assemblage avec Maven................................................................... Déploiement sur GlassFish.......................................................................................... Exécution de la classe Main avec Derby.................................................................. La classe BookEJBTest.................................................................................................. 213
214
215
216
217
218
220
221
221
Résumé..................................................................................................................................... 223
Beans de session et service timer.......................................................................................
225
Beans de session..................................................................................................................... 226
226
229
232
239
252
Beans sans état................................................................................................................ Beans avec état................................................................................................................ Singletons......................................................................................................................... Modèle des beans de session....................................................................................... Appels asynchrones. ...................................................................................................... © 2010 Pearson Education France – Java EE 6 et GlassFish 3 – Antonio Goncalves

8
Table des matières VII
Conteneurs intégrés . ..................................................................................................... 254
Le service timer...................................................................................................................... Expressions calendaires................................................................................................ Création automatique d’un timer................................................................................ Création d’un timer par programme ......................................................................... 256
257
260
261
Résumé..................................................................................................................................... 263
Méthodes de rappel et ­intercepteurs................................................................................
265
Cycles de vie des beans de session...................................................................................... 266
266
267
269
Beans sans état et singletons........................................................................................ Beans avec état................................................................................................................ Méthodes de rappel........................................................................................................ Intercepteurs............................................................................................................................ 9
Intercepteurs autour des appels................................................................................... Intercepteurs de méthode.............................................................................................. Intercepteur du cycle de vie......................................................................................... Chaînage et exclusion d’intercepteurs . .................................................................... 272
274
277
278
280
Résumé..................................................................................................................................... 282
Transactions et sécurité.......................................................................................................
283
Transactions. ........................................................................................................................... 283
284
285
286
ACID.................................................................................................................................. Transactions locales....................................................................................................... XA et transactions distribuées..................................................................................... Support des transactions avec les EJB................................................................................ Transactions gérées par le conteneur ........................................................................ Transactions gérées par le bean. ................................................................................. Sécurité. ................................................................................................................................... Principal et rôle............................................................................................................... Authentification et habilitation. .................................................................................. Gestion de la sécurité dans EJB........................................................................................... 10
288
289
296
298
299
300
Sécurité déclarative........................................................................................................ Sécurité par programmation. ....................................................................................... 301
301
305
Résumé..................................................................................................................................... 307
JavaServer Faces...................................................................................................................
309
Introduction à JSF.................................................................................................................. 310
© 2010 Pearson Education France – Java EE 6 et GlassFish 3 – Antonio Goncalves
VIII
Java EE 6 et GlassFish 3  FacesServlet et faces-config.xml................................................................................. Pages et composants...................................................................................................... Moteurs de rendu............................................................................................................ Convertisseurs et validateurs....................................................................................... Beans gérés et navigation............................................................................................. Support d’Ajax................................................................................................................ 311
311
313
313
314
315
Résumé des spécifications de l’interface web .................................................................. 316
316
317
317
318
318
Bref historique des interfaces web............................................................................. JSP 2.2, EL 2.2 et JSTL 1.2......................................................................................... JSF 2.0............................................................................................................................... Nouveautés de JSF 2.0.................................................................................................. Implémentation de référence....................................................................................... Récapitulatif............................................................................................................................ 11
L’entité Book.................................................................................................................... L’EJB BookEJB. ............................................................................................................. Le bean géré BookController. ..................................................................................... La page newBook.xhtml................................................................................................ La page listBooks.xhtml................................................................................................ Configuration avec web.xml......................................................................................... Compilation et assemblage avec Maven................................................................... Déploiement dans GlassFish. ...................................................................................... Exécution de l’application............................................................................................ 318
320
320
321
322
325
327
328
329
329
Résumé..................................................................................................................................... 330
Pages et composants. ............................................................................................................
331
Pages web................................................................................................................................ 332
332
334
335
338
338
HTML................................................................................................................................ XHTML............................................................................................................................ CSS. ................................................................................................................................... DOM.................................................................................................................................. JavaScript. ........................................................................................................................ Java Server Pages. .................................................................................................................. Directives.......................................................................................................................... Scripts................................................................................................................................ Actions.............................................................................................................................. Récapitulatif..................................................................................................................... © 2010 Pearson Education France – Java EE 6 et GlassFish 3 – Antonio Goncalves
341
342
343
344
345

12
Table des matières
IX
Langage d’expressions (EL)................................................................................................. 347
La bibliothèque de marqueurs standard de JSP (JSTL)................................................... Actions fondamentales.................................................................................................. Actions de formatage..................................................................................................... Actions SQL.................................................................................................................... Actions XML................................................................................................................... Fonctions. ......................................................................................................................... 349
350
351
353
355
357
Facelets..................................................................................................................................... 358
JavaServer Faces..................................................................................................................... Cycle de vie. .................................................................................................................... Composants HTML standard. ..................................................................................... Gestion des ressources.................................................................................................. Composants composites. .............................................................................................. Objets implicites............................................................................................................. 360
361
363
374
375
381
Résumé..................................................................................................................................... 383
Traitement et navigation.....................................................................................................
385
Le modèle MVC..................................................................................................................... 385
387
389
390
FacesServlet..................................................................................................................... FacesContext.................................................................................................................... Configuration de Faces. ................................................................................................ Beans gérés.............................................................................................................................. Écriture d’un bean géré................................................................................................. Modèle d’un bean géré.................................................................................................. Navigation........................................................................................................................ Gestion des messages.................................................................................................... Conversion et validation........................................................................................................ Convertisseurs................................................................................................................. Convertisseurs personnalisés....................................................................................... Validateurs........................................................................................................................ Validateurs personnalisés. ............................................................................................ Ajax. ......................................................................................................................................... 390
391
391
396
400
402
404
406
407
408
Concepts généraux......................................................................................................... Ajax et JSF....................................................................................................................... Récapitulatif..................................................................................................................... 410
410
412
413
Résumé..................................................................................................................................... 418
© 2010 Pearson Education France – Java EE 6 et GlassFish 3 – Antonio Goncalves
X
13
Java EE 6 et GlassFish 3  Envoi de messages.................................................................................................................
419
Présentation des messages.................................................................................................... 420
420
421
JMS.................................................................................................................................... MDB.................................................................................................................................. Résumé de la spécification des messages . ........................................................................ Bref historique des messages. ..................................................................................... JMS 1.1............................................................................................................................. EJB 3.1.............................................................................................................................. Implémentation de référence....................................................................................... 421
422
422
422
423
Envoi et réception d’un message. ........................................................................................ 423
Java Messaging Service......................................................................................................... 425
427
428
429
442
443
Point à point..................................................................................................................... Publication-abonnement............................................................................................... API JMS. .......................................................................................................................... Sélecteurs.......................................................................................................................... Mécanismes de fiabilité ............................................................................................... MDB : Message-Driven Beans. ........................................................................................... Création d’un MDB....................................................................................................... Le modèle des MDB...................................................................................................... MDB comme consommateur....................................................................................... MDB comme producteur.............................................................................................. Transactions..................................................................................................................... Gestion des exceptions.................................................................................................. Récapitulatif............................................................................................................................ 14
446
447
447
452
453
455
456
OrderDTO. ....................................................................................................................... OrderSender..................................................................................................................... OrderMDB. ...................................................................................................................... Compilation et assemblage avec Maven................................................................... Création des objets administrés. ................................................................................. Déploiement du MDB dans GlassFish...................................................................... Exécution de l’exemple................................................................................................. 457
457
458
459
459
461
461
462
Résumé..................................................................................................................................... 462
Services web SOAP...............................................................................................................
465
Présentation des services web.............................................................................................. 466
467
UDDI................................................................................................................................. © 2010 Pearson Education France – Java EE 6 et GlassFish 3 – Antonio Goncalves

Table des matières
XI
WSDL................................................................................................................................ SOAP................................................................................................................................. Protocole de transport.................................................................................................... XML. ................................................................................................................................. 467
468
468
468
Résumé de la spécification des services web . .................................................................. Bref historique des services web................................................................................ Spécifications Java EE. ................................................................................................. Implémentation de référence....................................................................................... 468
469
469
471
Appel d’un service web ........................................................................................................ 471
JAXB : Java Architecture for XML Binding..................................................................... 473
476
478
Liaison............................................................................................................................... Annotations...................................................................................................................... La partie immergée de l’iceberg.......................................................................................... WSDL................................................................................................................................ SOAP................................................................................................................................. JAX-WS : Java API for XML-Based Web Services......................................................... Le modèle JAX-WS....................................................................................................... Appel d’un service web ............................................................................................... Récapitulatif............................................................................................................................ 481
481
484
485
486
494
La classe CreditCard..................................................................................................... Le service web CardValidator..................................................................................... Compilation et assemblage avec Maven................................................................... Déploiement dans GlassFish. ...................................................................................... Le consommateur du service web ............................................................................. Création des artefacts du consommateur et assemblage avec Maven............... Exécution de la classe Main. ....................................................................................... 496
497
497
498
499
501
502
505
Résumé..................................................................................................................................... 505
15 Services web REST...............................................................................................................
507
Présentation des services web REST.................................................................................. Ressources........................................................................................................................ URI..................................................................................................................................... Représentations............................................................................................................... WADL. .............................................................................................................................. HTTP................................................................................................................................. 507
508
508
509
510
510
Spécification des services web REST................................................................................. 516
© 2010 Pearson Education France – Java EE 6 et GlassFish 3 – Antonio Goncalves
XII
Java EE 6 et GlassFish 3  Historique rapide de REST.......................................................................................... JAX-RS 1.1...................................................................................................................... Nouveautés de JAX-RS 1.1. ........................................................................................ Implémentation de référence....................................................................................... 516
517
517
517
L’approche REST................................................................................................................... 518
518
519
519
520
521
522
Du Web aux services web . .......................................................................................... Pratique de la navigation sur le Web. ........................................................................ Interface uniforme.......................................................................................................... Accessibilité..................................................................................................................... Connectivité..................................................................................................................... Sans état............................................................................................................................ JAX-RS : Java API for RESTful Web Services................................................................. Le modèle JAX-RS........................................................................................................ Écriture d’un service REST......................................................................................... Définition des URI......................................................................................................... Extraction des paramètres. ........................................................................................... Consommation et production des types de contenus . .......................................... Fournisseurs d’entités.................................................................................................... Méthodes ou interface uniforme................................................................................. Informations contextuelles........................................................................................... Gestion des exceptions.................................................................................................. Cycle de vie. .................................................................................................................... Récapitulatif............................................................................................................................ 523
523
524
525
526
528
530
532
534
536
537
L’entité Book.................................................................................................................... Le service REST BookResource................................................................................. Configuration avec web.xml......................................................................................... Compilation et assemblage avec Maven................................................................... Déploiement dans GlassFish. ...................................................................................... Exécution de l’exemple................................................................................................. 537
538
539
542
543
544
545
Résumé..................................................................................................................................... 546
Index...................................................................................................................................................
547
© 2010 Pearson Education France – Java EE 6 et GlassFish 3 – Antonio Goncalves
Téléchargement