TP3 AOS sous Java EE - M2 GIL EJB 3.2 et JSP

publicité
TP3 AOS sous Java EE - M2 GIL
EJB 3.2 et JSP
Lina Soualmia
6 octobre 2014
1
Préambule
Récupérez le tutoriel (disponible dans le sous répertoire de Glassfish (glassfish/docs/javaeetutorial/doc/JavaEETutorial.pdf ou en ligne à l’adresse : http://docs.oracle.com/javaee/7/
tutorial/doc/javaeetutorial7.pdf) Chapitre 33. Getting Started with Enterprise Beans pp.537
// Chapitre 23. p.459 pour la version 6)
2
Exercice 1
Exemple “Converter” ici adapté pour Eclipse. // à adapter à votre IDE
2.1
Préparation de l’environnement
Ce premier exercice repose sur deux parties distinctes :
— Des Enterprise Java Beans (EJB) composant une application
— Une application Web et des JSP faisant office d’application cliente.
2.1.1
Projet EJB
1. Créez un projet ’EJB Project’ de type 3.2 // ou 3.1 pour la version 6 sous Eclipse que vous
nommerez ’GettingStarted’.
2. Vérifiez que ”GlassFish Server Open Source Edition 4 (Java EE 7)” // ou GlassFish Server
Open Source Edition 3 (Java EE 6) est sélectionné comme ”Target Runtime”.
3. Le champ Configuration doit être à la valeur Default Configuration for GlassFish Server
Open Source Edition 4 (Java EE 7). //Default Configuration for GlassFish Server Open
Source Edition 3 (Java EE 6)
2.1.2
Dynamic Web project
1. Créez un ”Dynamic Web Project” que vous nommerez ’GettingStartedWeb’.
2. Vérifiez bien que ”GlassFish Server Open Source Edition 4 (Java EE 7)” est sélectionné
comme ”Target Runtime” //GlassFish Server Open Source Edition 3 (Java EE 6)
3. Le Dynamic Web module version doit être 3.x
4. Le champ Configuration doit être à la valeur Default Configuration for GlassFish Server
Open Source Edition 4 (Java EE 7) //Default Configuration for GlassFish Server Open
Source Edition 3 (Java EE 6)
2.1.3
Java project
1. Créez un ”New” ”Java Project” que vous nommerez GettingStartedStandalone
2. Assurez-vous que le radio bouton du panneau JRE est bien sur ”Use Default JRE”
3. Le projet doit intégrer une bibliothèque spécifique aux applications clientes JEE 7 // JEE6
fournie par GlassFish : cliquez avec le bouton droit sur le projet GettingStartedStandalone
4. Choisissez l’item ”Build path” puis Configure build path... ;
1
5. Ajouter dans ”Libraries” ”Add External JARs...” jar gf-client.jar disponible dans glassfish/modules.
2.2
Premier exemple d’EJB 3.2 (Conversion monétaire entre dollars et
yens)
Un EJB nécessite toujours au moins :
— Une interface (appelée Business Interface, ou Interface Métier) qui permettra la communication entre le serveur et les clients. Cette interface doit décrire les méthodes publiques du
bean qui seront invoquables depuis les clients.
— Une classe qui codera le bean lui même. Cette classe implantera l’interface métier et sera
annotée en fonction du comportement que l’on veut donner au bean.
2.2.1
Interface Métier
1. Dans le menu contextuel de l’EJB project GettingStarted (clic droit), sélectionnez ”New”
”Interface”
2. Donnez comme nom de package com.sun.tutorial.javaee.ejb
3. Nommez l’interface Converter, éditez-la vide puis insérez le code du fichier ’Converter int’
en ligne.
2.2.2
Bean
1. Dans le menu contextuel de l’EJB projet GettingStarted, sélectionnez ”New” ”Class”
2. donnez comme nom de package com.sun.tutorial.javaee.ejb
3. Nommez la classe ConverterBean et insérez le code du fichier ’Converter bean’ en ligne.
(Comme pour l’interface précédente, vous trouverez la classe ConverterBean également dans le
répertoire ”ejbModule” du projet ”GettingStarted”.)
2.2.3
Client
1. Créez une nouvelle classe ConverterClient dans le package com.sun.tutorial.javaee.ejb
pour le projet GettingStartedStandalone
2. Définissez la avec le code contenu dans Converter client en ligne.
Initialisez si besoin l’objet InitialContext avec comme propriétés :
org.omg.CORBA.ORBInitialHost=localhost
org.omg.CORBA.ORBInitialPort=3700
2.3
Première exécution
1. Déployez le projet ”GettingStarted” sur le serveur
2. Lancez le client (”Run As” ”Java Application”)
=) L’application se lance et doit afficher sur la console le résultat de la conversion.
2.4
Connexion à un autre serveur Java EE
Vous pouvez essayer de vous connecter au serveur d’application d’une autre machine en changeant les valeurs des propriétés org.omg.CORBA.ORBInitialHost et org.omg.CORBA.ORBInitialPort
en spécifiant respectivement l’IP ou le DNS et le port d’un autre serveur Java EE.
2.5
Client web
1. A partir du menu contextuel du projet web dynamique GettingStartedWeb créez un fichier
jsp (”New” ”JSP”) converter.jsp.
2. Cette JSP doit être créee dans le répertoire WebContent du projet GettingStartedWeb.
3. Editez-la avec le code inclus dans converter jsp.jsp en ligne.
2
4. Reliez l’interface métier Converter à la JSP en recopiant cette interface dans la partie Java
du projet (à partir du projet GettingStartedWeb ”New” ”Interface” )
5. Donnez comme nom de package com.sun.tutorial.javaee.ejb
6. Nommez l’interface Converter
7. Copier le code de l’interface Converter du projet GettingStarted dans l’interface Converter
du projet GettingStartedWeb.
8. Recompilez le tout pour que erreurs dans la JSP disparaissent.
9. Déployer les pages sur le serveur (”GettingStartedWeb” ”Run As...” ”Run on server...” GlassFish Server Open Source Edition 4 (Java EE 7) //GlassFish Server Open Source Edition 3
(Java EE 6)
10. Accédez au client web en entrant l’adresse : http://localhost:8080/GettingStartedWeb/converter.jsp
=) vous pouvez essayer de vous connecter aux serveurs d’autres machines pour vérifier leur fonctionnement.
3
Exercice 2 : exemple cart (Panier)
Suivez le tutoriel d’Oracle pour déployer l’EJB Session “Cart” (pp.541-547) //pp.465-470 V6
(sources : glassfish\docs\javaee-tutorial\examples\ejb)
4
Exercice 3 : web service helloservice
Idem qu’en 3 pp.553-556.
5
pour ceux qui ont fini : Exercice 4 : compte bancaire
Il s’agit de modéliser une application de gestion d’un compte bancaire. Il sera possible d’accéder
à distance à cette application par le biais d’une application cliente. (un module EJB (bean session
avec état), un module web et un client). L’application permettra :
1. de déposer de l’argent sur le compte,
2. de retirer de l’argent sur le compte,
3. de donner le solde du compte.
Un compte est représenté par la classe Compte (Serializable) qui possède les champs suivants :
id (Long), Prenom (String), Nom (String) et Solde (Float).
5.1
5.1.1
Appli java
Opérations unitaires
Développez une application java autonome dans laquelle vous e↵ectuerez des opérations sur le
compte bancaire :
1. dépôt de 1,200 €,
2. retrait de 500 €,
3. dépôt de 650 €,
4. affichage du solde,
5. retrait de 500 €,
6. affichage du solde.
5.1.2
Test de fonctionnalités
Dans un second temps construisez une interface cliente (JSP ou servlet) qui permettra de tester
les trois fonctionnalités o↵ertes par le serveur ”Compte”.
3
Téléchargement