Conteneur WEB Conteneur d’application
ContactManager Contact Contact
Modèle
Vue
JSP
Contrôleur
Servlets
AddContactForm
Servlet
AddContactExecute
Servlet
ListContact
Servlet
contactForm
contactAdded
contactNotAdded
listContact
Navigateur web
FACADE
EJB session
Remote
Stateless ou stateful
EJB entity
Local
TD6 Initiation aux EJB3 avec Eclipse
Ecriture d’une application J2EE complète
Nous allons écrire une application J2EE qui permet dans un navigateur web de gérer des contacts. Pour cela, nous
allons suivre le pattern MVC (Modèle Vue Contrôleur). La vue est l’interface graphique écrite en jsp. Le contrôleur
sera écrit sous forme de servlets qui sont à même de contrôler le séquencement entre les différentes pages du projet.
Enfin, le modèle prendra la forme d’ejbs. L’architecture générale sera la suivante :
Conseil : utilisez les noms de classes et de variable du TD et prenez la version de JBoss de l’archive (7.1.1)
Cette architecture est une architecture J2EE classique.
Le client
Le client est dans la zone internet, il accède de ce fait au système d'information par le conteneur web.
Les servlets
Dans ce conteneur, une ou plusieurs servlets répondent aux demandes des clients. Le conteneur web est par nature
un conteneur fragile car accessible de partout. De ce fait, il est conçu pour contenir uniquement de la présentation ou
des transferts d'information entre le cœur du SI (les processus métiers et le client). De plus, un des apports de J2EE
est de permettre de proposer plusieurs présentations différentes associées aux processus métiers. Par exemple, dans
une agence de voyage, une réservation d'un séjour peut se faire directement par client dans une interface web ou par
le personnel de l'agence dans une application java. Les processus métiers impliqués sont les mêmes mais la
présentation différente. Il faut donc être très attentif à ne pas déplacer une partie du processus métier dans les
servlets. Dans cet exemple, les servlets contiendront uniquement l'appel à l'ejb Facade.
Les ejb
Tout d'abord, la persistance des données est assurée par une base de données mysql. Pour gérer cette base, il est
classique d'associer un ejb entité par table.
Dans tous les systèmes d'information, la base de données est complexe et faite de plusieurs tables interconnectées
par des clés étrangères. De plus, un processus métier fait couramment appel à plusieurs ejb. Par exemple, pour
réserver une chambre pour un client, il faut utiliser les ejb des hôtels et des chambres pour vérifier la réservation puis
l'ejb des réservations pour rajouter la réservation mais aussi l'ejb du client pour ajouter ou rechercher le client. La
gestion de ces processus complexe doit être isolée des ejb entités qui sont chacun dédiés à la gestion d'une table.
Pour cela, une solution est de créer un ejb dit façade qui se charge des processus métiers. Cet ejb ne gère pas de la
persistance mais synchronise les appels aux ejb persistants, il s'agit donc d'un ejb session sans état.
1 Création des projets
1.1 Création du projet WEB
Une fois votre IDE Eclipse lancé cliquez sur : « File -> New ->Project -> Web -> Dynamic Web Project ». Cliquez sur
Next. Remplissez les champs comme ci-dessous. Attention, le nom de l'EAR doit être modifié.
ASI TD6 – Anne Lapujade 1