1
Java EE – Introduction
EMSI - Université de Nice Sophia Antipolis
Richard Grin
Version O 1.8 – 3/12/16
Cours Java EE
18 h 30 de cours et TD/TP
Site du cours :
http://richard.grin.free.fr/emsi/rabat
Interrogation sans documents à la fin du cours, sur
les concepts et savoir-faire essentiels (40 %)
Projet à rendre en février 2017 (60 %)
Richard Grin Présentation Java EE page 2
Installation logiciels
Qui n’a pas fini d’installer tous les logiciels sur
son ordinateur personnel ?
Qui n’a pas commencé le TP 1 jusqu’à « Création
de classes entités à partir d’une base de données
existante » ?
Richard Grin Présentation Java EE page 3
Prérequis / Objectifs
Prérequis :
HTML, HTTP
Bonne connaissance de Java
Servlets (les bases)
Bases de données relationnelles (transactions et accès
concurrents en particulier)
Objectif :
Développement d’applications Web avec Java EE,
en particulier avec JSF, JPA et les EJB
Richard Grin Présentation Java EE page 4
Plan du cours
Introduction à Java EE (ce support)
Suite du TP 1
EJB – Introduction à CDI
Fin du TP 1 (survol de JSF, EJB, JPA) ; Important de le finir
JSF
TP 2 (JSF et modèle PRG)
TP 3 (templates de JSF)
JPA 1ère partie (bases)
TP 4 (JPA)
JPA 2ème partie (associations et compléments)
TP 5 (associations avec JPA)
Richard Grin Présentation Java EE page 5
Projet
Thème : réseau social pour le partage de vidéos
et de pages Web
Terminer tous les TPs
Faire TP 6 sur JSF et HTML5 et sur vidéos
YouTube
Optionnel : faire TP 7 sur sécurité
Bien lire les problèmes rencontrés lors des
projets des années passées
Richard Grin Présentation Java EE page 6
2
Richard Grin Présentation Java EE page 7
Plan de ce support
Présentation de Java EE
Composants
Serveur d’application et containers
Formats de distribution
Profiles
JNDI
Richard Grin Présentation Java EE page 8
Architecture d’une
application d’entreprise
Les applications d’entreprise modernes sont des
applications multi-tiers
Couches d’une application Java EE
Souvent Web
et mobile
Les « vrais »
traitements
Sécurité,
transactionnel,
Concurrence,… DAO, ORM,…
Richard Grin Présentation Java EE page 9
Java EE
Java Enterprise Edition
Pas un produit ; spécifications (32 dans Java EE 7)
pour écrire des applications d’entreprise en Java
Les composants métier sont des Entreprise Java
Beans (EJB)
Nous étudierons une interface utilisateur de type
Web, implémentée avec Java Server Faces (JSF)
La couche d’accès aux données utilisera « Java
Persistence API » (JPA)
Richard Grin Présentation Java EE page 10
Autre solution Java EE (partiellement)
Service Web de type REST (API Java JAX-RS)
Interface utilisateur Web pas Java EE :
HTML5 – JavaScript, éventuellement avec
surcouche de type Angular ou React
Richard Grin Présentation Java EE page 11
Quelle solution choisir ?
JSF convient très bien quand l’interface Web n’est
pas trop complexe et pour les applications qui
n’ont pas des milliers de clients Web
Si l’application est « single page », avec de très
nombreux clients et du code JavaScript complexe,
choisir la solution service Web REST et clients
Web HTML5 – JavaScript
Richard Grin Présentation Java EE page 12
3
Composant
Java EE utilise la notion de composant, en
particulier pour les EJB et les composants JSF
Sur le modèle des composants électroniques, les
composants logiciels sont des boîtes noires
réutilisables
configurables
qui respectent des interfaces définies par une
spécification
qui peuvent être enfichés dans les applications
qui respectent ces spécifications
Richard Grin Présentation Java EE page 13
Intérêt des composants
Développement plus rapide, plus fiable
Maintenance facilitée
Pas besoin de compétences pointues dans le
domaine métier d’un composant acquis
Industrie du composant logiciel ? Pas encore
Richard Grin Présentation Java EE page 14
Exemples
Composant « métier » pour gérer la paie des
employés
Composant JSF qui affiche une carte « Google
Map » dans l’interface utilisateur Web
Richard Grin Présentation Java EE page 15
Serveur d’application
Logiciel qui sert de structure d’accueil pour les
applications ; il leur fournit des services non
fonctionnels
Les applications Java EE ne peuvent fonctionner
que si elles sont intégrées avec un serveur
d’application qui suit les spécifications Java EE
GlassFish 4 est l’implémentation de référence de
Java EE 7
Plusieurs autres serveurs d’application Java EE
(Payara, WildFly,…)
Richard Grin Présentation Java EE page 16
Containers
Chaque type de composant Java EE est géré par un
container qui fait partie du serveur d’application : pour
JSF, EJB, CDI, etc.
Un container intercepte les appels aux composants
pour ajouter des services non fonctionnels :
transactions, gestion de la concurrence, cycle de vie
des composants, injection de dépendance,…
Le développeur est ainsi libéré d’une grande charge
de travail !
Richard Grin Présentation Java EE page 17
Exemple d’interception
L’appel d’une méthode d’un EJB est intercepté par
le container EJB qui
démarre une nouvelle transaction, juste avant de
donner la main à la méthode
lance un commit de la transaction à la fin de
l’exécution de la méthode
Présentation Java EE page 18Richard Grin
4
Configuration d’une application
Pour
s’adapter à la plateforme de déploiement (politique de
sécurité, bases de données installées,…)
faire un choix entre plusieurs possibilités (persistance
des attributs d’un objet, gestion des transactions,…)
Java EE suit la formule « convention plutôt que
configuration » : pas besoin de configurer les
pratiques les plus courantes ; seules les pratiques
inhabituelles doivent être configurées
Configuration par fichiers XML ou annotations
Richard Grin Présentation Java EE page 19 Richard Grin Présentation Java EE page 20
Format de distribution
d’une application Java EE
Fichier d’archive
Une application Java EE est distribuée dans un
fichier d’archive, de type fichier jar
Un fichier d’archive peut contenir
des classes Java (simples classes, composants)
des ressources utilisées par le code Java
(images, son, fichiers pour internationalisation,…)
des fichiers XML qui décrivent l’application ou la
façon de la déployer
d’autres fichiers d’archive
Richard Grin Présentation Java EE page 21
Fichier descripteur de déploiement
Informe le serveur d’application sur la manière de
déployer une application
Par exemple pour intégrer l’application dans le
système de sécurité utilisé par le serveur
Java EE a des fichiers descripteurs standards ;
web.xml pour les applications Web
Un serveur d’application peut y ajouter ses propres
fichiers pour des configurations non standardisées
(clustering, pools de connexions, …) ; par exemple
glassfish-web.xml pour GlassFish
Richard Grin Présentation Java EE page 22
Annotations et fichiers descripteurs XML
De nombreuses annotations permettent de
configurer une application directement dans les
classes Java
Le contenu des fichiers XML est ainsi allégé
S’il y a conflit sur une indication, c’est le fichier
XML qui l’emporte
Richard Grin Présentation Java EE page 23
Pourquoi ?
Types de fichiers d’archive
Jar (Java ARchive) : contient les EJB, les classes
Java ordinaires et les ressources associées
War (Web ARchive) : pour les modules liés au
Web ; contient les servlets, fichiers HTML, JSF,
EJB, et les ressources associées
Ear (Entreprise ARchive) : contient des modules
jar ou war
Richard Grin Présentation Java EE page 24
5
Structure JAR pour EJB
Richard Grin Présentation Java EE page 25
classes
directement
sous la racine
Structure WAR
Richard Grin Présentation Java EE page 26
Protégé des
clients Web
Structure EAR
Richard Grin Présentation Java EE page 27 Richard Grin Présentation Java EE page 28
Profiles
Profile
Pour permettre des serveurs d’application allégés,
Java EE définit des profiles qui n’utilisent pas
toutes les technologies de la norme
Le profile Web inclut les technologies pour écrire
une application Web : servlets, JSF, CDI, EJB Lite,
JPA, JTA, validation bean
Une application qui se limite au profile Web peut
être distribuée dans un seul fichier WAR
Richard Grin Présentation Java EE page 29
EJB Lite
Une partie de la spécification EJB :
beans stateless, stateful et singleton (donc pas
EJB message, MDB)
interfaces locales (pas d’interfaces distantes)
Richard Grin Présentation Java EE page 30
1 / 7 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !