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

Transcription

TP2 AOS sous Java EE - M2 GIL EJB 3.2 et JSP
TP2 AOS sous Java EE - M2 GIL
EJB 3.2 et JSP
Lina Soualmia
28 septembre 2015
Finir le TP1 avant d’entamer ce TP2.
Les consignes ci-dessous sont valables pour l’IDE Eclipse et le serveur d’applications
Glassfish. Vous avez la possibilité travailler avec l’IDE de votre choix et le serveur de votre
choix (en adaptant les consignes à votre environnement....).
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)
1
1.1
Installation JDK/Glassfish/Eclipse
Vérification du JDK
Installer le JDK de Oracle disponible sur http://www.oracle.com/technetwork/java/
javase/downloads/index.html.
Télécharger le JDK simple (sans java EE ni netbeans). Assurez vous d’avoir défini la variable d’environnement JAVA HOME et qu’elle pointe bien vers le répertoire d’installation
du JDK.
Assurez vous que le PATH système pointe bien vers le répertoire bin du répertoire d’installation du JDK.
1.2
JEE et Glassfish
Installer l’environnement JEE avec l’implantation de GlassFish disponible à l’adresse :
https://glassfish.java.net/download.html#gfoseTab
Installer le package Java EE 7 SDK
Lancer et arrêter le serveur : startserv et stopserv dans le répertoire /glassfish/bin
de l’installation de JEE 7.
Une fois lancé, le serveur fourni une page web d’administration disponible à l’adresse
http://localhost:4848. (Se logger à la console d’administration avec le login spécifié
durant l’installation, par défaut le nom de login est admin et le mot de passe est vide).
1.3
Installation de l’environnement Eclipse
Installer Eclipse IDE for Java EE Developers : http://www.eclipse.org/downloads/.
Configurez correctement Eclipse en vous assurant que le JDK utilisé est bien celui installé
précédemment.
Configurez correctement le workspace (encodage, ...).
1
2
Installation du lien GlassFish / Eclipse
Pour activer le plugin pour Eclipse qui permet de gérer des serveurs GlassFish :
1. Dans le menu ”File”, choisissez ”New Server” (ou via ”Other ” si l’item n’est pas
disponible)
2. Dans la fenêtre de configuration du serveur, si la liste proposée contient la catégorie
”GlassFish” et que celle-ci contient un item ”GlassFish vxx java EE xx” poursuivez
la procédure à partir du point 4.
3. Sinon, cliquez sur le lien ”Download additional server adapters” et choisissez la
catégorie ”GlassFish” et installez ”l’adapter” et recommencez la procédure depuis
1.
4. Sélectionnez le serveur ”GlassFish” et cliquez sur le bouton ”Next”.
5. Dans le panneau suivant, laissez le champ JRE sur ”Default JRE”.
6. Faites pointer le champ ”Application Server Directory” vers votre sous-répertoire
”glassfish” du répertoire où vous aviez installé JEE 7 SDK.
7. Changer le ”Administrator Id” et le ”Administrator Password” afin de les faire correspondre aux identifiants que vous avez fournis durant l’installation de GlassFish.
8. Cliquez sur le bouton ”Finish” : le lien entre Eclipse et Java EE 7 (GlassFish v4)
est actif.
3
Exercice 1
Exemple “Converter” sous Eclipse. // à adapter à votre IDE
3.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.
3.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)
3.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
3.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... ;
5. Ajouter dans ”Libraries” ”Add External JARs...” jar gf-client.jar disponible
dans glassfish/modules.
3.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.
3.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.
3.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”.)
3.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
3.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 votre console le résultat de la conversion.
3
3.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. //il
faut éventuellement gérer le proxy
3.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.
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 les 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
=) vous pouvez essayer de vous connecter aux serveurs d’autres machines pour vérifier
leur fonctionnement.
4
Exercice 2 : exemple cart (Panier)
Suivez le tutoriel d’Oracle pour déployer l’EJB Session “Cart” (pp.541-547) //pp.465470 V6
(sources : glassfish\docs\javaee-tutorial\examples\ejb)
5
Exercice 3 : web service helloservice
Idem qu’en 3 pp.553-556.
6
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).
4
6.1
6.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 1200 €,
2. retrait de 500 €,
3. dépôt de 650 €,
4. affichage du solde,
5. retrait de 500 €,
6. affichage du solde.
6.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”.
5