1. Introduction
Le PDF de ce document est disponible |ICI|.
Les exemples du document sont disponibles |ICI|.
Ce document reprend un précédent document écrit en 2010 et intitulé "Introduction à Java EE avec Netbeans 6.8 et le serveur Glassfish v3". Celui-ci amène principalement les changements suivants :
- la partie JSF (Java Server Faces) est traitée dans un document à part : " Introduction à Java Server Faces, Primefaces et Primefaces mobile " disponible à l'URL [http://tahe.developpez.com/java/primefaces]. On y utilise des caractéristiques de la version 2 de JSF,
- les projets sont des projets Maven.
Java EE signifie Java Enterprise Edition. J2EE (Java 2 Enterprise Edition) était le terme précédent. J2EE désigne les technologies Java utilisées pour créer des applications d'entreprise avec le JDK 1.4 ou antérieur. En même temps que le JDK 1.5 amenait de nombreuses nouveautés dans le langage Java, Sun introduisait de nouvelles technologies s'appuyant sur ce langage amélioré afin de remédier à des lacunes de ces mêmes technologies dans J2EE. Le terme Java EE 5 a alors été utilisé pour désigner l'ensemble des technologies qui concourent à créer une application d'entreprise avec la plate-forme Java. Au moment de la mise à jour de ce document, la dernière version de Java EE est Java EE 6.
Les livres d'Antonio Goncalves :
- Java EE 5 aux éditions Eyrolles
- Beginning Java EE 6 Platform with Glassfish 3 aux éditions Apress
sont d'excellents livres pour découvrir les technologies de Java EE 5 et Java EE 6. Toutes les technologies importantes de Java EE y sont passées en revue dans le contexte d'études de cas réalistes. L'auteur a un site [http://www.antoniogoncalves.org] que le lecteur est invité à visiter.
Le document présent étudie certaines des technologies de Java EE 5. Nous y créons une application basique à trois couches [présentation, métier, accès aux données] déclinée en plusieurs versions :
Une application web avec les technologies suivantes :
- Java Server Faces : pour la couche web
- EJB3 ou Spring : pour la couche métier
- EJB3 ou Spring, JPA/Hibernate, JPA/EclipseLink : pour créer différentes couches d'accès aux données
Une application client / serveur avec les technologies suivantes :
- Swing : pour la couche graphique cliente avec un support Spring
- EJB3 ou service web : pour la couche serveur
Certaines technologies Java EE ne sont pas présentées telles les MDB (Message Driven Bean) ou les EJB3 stateful. Pour les découvrir, on lira les livres d'Antonio Goncalves.
Il existe d'autres technologies Open Source disponibles pour créer des applications trois couches. Une tandem très populaire est Spring (http://www.springframework.org/) / Hibernate (http://www.hibernate.org/). Afin de permettre au lecteur de comparer les technologies EJB3 et Spring, l'application précédente a des versions où Spring remplace les EJB3.
Ce document est un TD (Travail Dirigé) utilisé en 5ième année de l'école d'ingénieurs ISTIA de l'université d'Angers [http://www.istia.univ-angers.fr]. Ce TD décrit l'application à construire, les technologies Java à utiliser, les endroits où trouver de l'information. La solution proposée est souvent très cadrée. Le TD pose des questions dont il ne donne pas les réponses. C'est à l'étudiant de les trouver.
L'apprentissage Java EE proposé ici nécessite un investissement du lecteur estimé entre 50 et 100 heures. Le document contient beaucoup de code rendant possible le copier / coller. Par ailleurs, tous les projets Netbeans sont décrits dans le détail. Globalement, le document donne les squelettes des solutions et il est demandé à l'étudiant d'en donner certains détails. Le document peut être utile même à quelqu'un ne pouvant ou ne voulant pas s'investir autant. On peut s'intéresser uniquement aux architectures décrites et délaisser la partie code qui fait l'objet des questions.
Pour développer et exécuter l'application, nous utilisons l'IDE Netbeans. Netbeans est un produit assez lourd : prévoir 1 Go de Ram pour travailler confortablement. On peut le télécharger à l'url [http://www.netbeans.org/].
Le document fait référence aux cours suivants :
- Persistance Java 5 par la pratique : [http://tahe.developpez.com/java/jpa] - donne les outils pour construire la couche d'accès aux données avec JPA (Java Persistence API)
- Introduction au langage Java [http://tahe.developpez.com/java/cours] - pour les débutants
- Introduction par l'exemple à Java Server Faces, Primefaces et Primefaces mobile [http://tahe.developpez.com/java/primefaces]
Ces supports de cours sont par la suite référencés [ref1] [ref2] et [ref3].
Serge Tahé, juin 2012.