tp java ee.pptx
DESCRIPTION
TP java JEE BOSS AS 7TRANSCRIPT
![Page 1: Tp java ee.pptx](https://reader034.vdocuments.fr/reader034/viewer/2022042514/5590345a1a28abef2c8b4669/html5/thumbnails/1.jpg)
TP JEE Ce document contient les énoncés de TP JEE
et des guides techniques pour les serveurs et outils utilisés Tomcat7, Jboss 7, Eclipse Juno
Le contenu de ce document est mis à disposition selon les termes de la Licence Creative Commons Attribution - Partage dans les Mêmes Conditions 3.0 France.
1
![Page 2: Tp java ee.pptx](https://reader034.vdocuments.fr/reader034/viewer/2022042514/5590345a1a28abef2c8b4669/html5/thumbnails/2.jpg)
Tomcat 7 Présentation avant travaux
2
![Page 3: Tp java ee.pptx](https://reader034.vdocuments.fr/reader034/viewer/2022042514/5590345a1a28abef2c8b4669/html5/thumbnails/3.jpg)
Installation de Tomcat • Décompresser l’archive dans un sous-répertoire
o avec les droits en lecture/écriture o sans d’espace ou accents o Configuration « conf/server.xml »
• Démarrage / Arrêt o startup.bat (avec java dans le PATH) o shutdown.bat ou CTRL-C
• Surveillance o Fichier « logs/catalina.<date>.log » o JConsole INFO: Déploiement du répertoire C:\Projets\Tools\apache-‐‑tomcat-‐‑7.0.30\webapps\manager de
l'ʹapplication web 18 sept. 2012 10:10:50 org.apache.catalina.startup.HostConfig deployDirectory INFO: Déploiement du répertoire C:\Projets\Tools\apache-‐‑tomcat-‐‑7.0.30\webapps\ROOT de l'ʹapplication web 18 sept. 2012 10:10:50 org.apache.coyote.AbstractProtocol start INFO: Starting ProtocolHandler ["ʺhUp-‐‑bio-‐‑8880"ʺ] 18 sept. 2012 10:10:50 org.apache.coyote.AbstractProtocol start INFO: Starting ProtocolHandler ["ʺajp-‐‑bio-‐‑8809"ʺ] 18 sept. 2012 10:10:50 org.apache.catalina.startup.Catalina start INFO: Server startup in 14591 ms
3
![Page 4: Tp java ee.pptx](https://reader034.vdocuments.fr/reader034/viewer/2022042514/5590345a1a28abef2c8b4669/html5/thumbnails/4.jpg)
Déployer une application • http://localhost:8080/manager/html • User
« tomcat », mot de passe
« tomcat » • ou répertoire
webapps • ce peut être
plus complexe
1
23
<role rolename="ʺmanager-‐‑gui"ʺ/> <role rolename="ʺadmin-‐‑gui"ʺ/> <user username="ʺtomcat"ʺ password="ʺtomcat"ʺ roles="ʺtomcat,manager-‐‑gui,admin-‐‑gui"ʺ/>
$tomcat/conf/tomcat-users.xml
4
![Page 5: Tp java ee.pptx](https://reader034.vdocuments.fr/reader034/viewer/2022042514/5590345a1a28abef2c8b4669/html5/thumbnails/5.jpg)
la jconsole • Executable « jconsole[.exe] » fournie avec le JDK,
utilisable avec d’autres applications • Voir les erreurs
dans la console linux ou MSDOS
5
![Page 6: Tp java ee.pptx](https://reader034.vdocuments.fr/reader034/viewer/2022042514/5590345a1a28abef2c8b4669/html5/thumbnails/6.jpg)
Vue de Tomcat en fonctionnement
6
![Page 7: Tp java ee.pptx](https://reader034.vdocuments.fr/reader034/viewer/2022042514/5590345a1a28abef2c8b4669/html5/thumbnails/7.jpg)
TP 1 : utilisation de Tomcat 7
• Téléchargement de Tomcat 7 32 bits windows • Installation (utiliser jdk.bat, après avoir adapté JAVA_HOME) • Démarrage • Utilisation du manager • Déploiement d’une application web
o sur le site du cours dans ressources/exo/hawtio...
• Utilisation de la jconsole • Arrêt • Déployer plusieurs applications web
o en cas d'erreur mémoire OutOfMemoryError mettre set JAVA_OPTS=-Xms256m -Xmx512m
au début de catalina.bat http://mirrors.jenkins-ci.org/war/latest/jenkins.war 7
![Page 8: Tp java ee.pptx](https://reader034.vdocuments.fr/reader034/viewer/2022042514/5590345a1a28abef2c8b4669/html5/thumbnails/8.jpg)
Jboss AS 7.1 Présentation avant travaux
8
![Page 9: Tp java ee.pptx](https://reader034.vdocuments.fr/reader034/viewer/2022042514/5590345a1a28abef2c8b4669/html5/thumbnails/9.jpg)
Installer JBoss • Décompresser l’archive dans le sous-répertoire de
votre choix où o vous avez les droits en lecture/écriture o Il n’y a pas d’espace ou d’accents dans le chemin complet
• Documentation o https://docs.jboss.org/author/display/AS7/Admin+Guide
9
![Page 10: Tp java ee.pptx](https://reader034.vdocuments.fr/reader034/viewer/2022042514/5590345a1a28abef2c8b4669/html5/thumbnails/10.jpg)
Démarrer Jboss en standalone
• JBOSS_HOME\bin\standalone.bat • http://localhost:9990/console
10
![Page 11: Tp java ee.pptx](https://reader034.vdocuments.fr/reader034/viewer/2022042514/5590345a1a28abef2c8b4669/html5/thumbnails/11.jpg)
Ajouter l’utilisateur • Realm vide (par défaut ManagementRealm) • Avec la commande "add-user"
o Rajouter le user admin/jboss
11
![Page 12: Tp java ee.pptx](https://reader034.vdocuments.fr/reader034/viewer/2022042514/5590345a1a28abef2c8b4669/html5/thumbnails/12.jpg)
Déployer une application 1/3
12
![Page 13: Tp java ee.pptx](https://reader034.vdocuments.fr/reader034/viewer/2022042514/5590345a1a28abef2c8b4669/html5/thumbnails/13.jpg)
Déployer une application 2/3
13
![Page 14: Tp java ee.pptx](https://reader034.vdocuments.fr/reader034/viewer/2022042514/5590345a1a28abef2c8b4669/html5/thumbnails/14.jpg)
Déployer une application 3/3
14
![Page 15: Tp java ee.pptx](https://reader034.vdocuments.fr/reader034/viewer/2022042514/5590345a1a28abef2c8b4669/html5/thumbnails/15.jpg)
La console d’administration
• $JBOSS/standalone/configuration/standalone.xml
15
![Page 16: Tp java ee.pptx](https://reader034.vdocuments.fr/reader034/viewer/2022042514/5590345a1a28abef2c8b4669/html5/thumbnails/16.jpg)
Autres façons d’installer une application JEE
• Déposer le fichier war ou ear dans $JBoss\standalone\deployments o Répertoire scruté périodiquement par le serveur d’application o Faire un déplacement plutôt qu’une copie
• Depuis Eclipse
• Outil en ligne de commande « jboss-cli » o Mode interactif par défaut o Mode non interactif : ./jboss-cli.sh --file=install-pizzashop.cli
• Le script d’installation est préférable pour livrer un logiciel o Pas d’erreur de manipulation humaine o Procédure maitrisée
•
16
![Page 17: Tp java ee.pptx](https://reader034.vdocuments.fr/reader034/viewer/2022042514/5590345a1a28abef2c8b4669/html5/thumbnails/17.jpg)
Jconsole Jboss
17
![Page 18: Tp java ee.pptx](https://reader034.vdocuments.fr/reader034/viewer/2022042514/5590345a1a28abef2c8b4669/html5/thumbnails/18.jpg)
Arrêter JBoss Plusieurs choix : 1. fermer la console MSDOS de standalone.bat ou le shell linux de standalone.bat/.sh 2. Utiliser la commande jboss-cli
1. jboss-cli.bat --connect command=:shutdown ou ./jboss-cli.sh --connect command=:shutdown
3. Tuer la tâche associée à jboss sous linux : 1. ps –ef | grep jboss 2. kill xxx
18
![Page 19: Tp java ee.pptx](https://reader034.vdocuments.fr/reader034/viewer/2022042514/5590345a1a28abef2c8b4669/html5/thumbnails/19.jpg)
TP 2 : utilisation de JBoss AS 7.1
• Installation • Démarrage • Ajouter l'utilisateur admin/jboss • Utilisation de la console d’administration • Déploiement d’une application JEE
o les applications sont déployées par défaut sur le port 8080
• Utilisation de la jconsole o faire une connection en "remote process"
service:jmx:remoting-jmx://localhost:9999 avec le user créé ci-dessus
• Arrêt
19
![Page 20: Tp java ee.pptx](https://reader034.vdocuments.fr/reader034/viewer/2022042514/5590345a1a28abef2c8b4669/html5/thumbnails/20.jpg)
TP 3 : Servlet • Outils : javac, notepad++, jar • Consignes :
o ne pas utiliser d’IDE comme Eclipse o ne pos déclarer de package o Il faudra rajouter %TOMCAT_HOME%\lib\servlet-api.jar dans le CLASSPATH
• HelloWorld (voir support de cours pour le code, make_hello.bat fourni)
o A déployer dans %TOMCAT_HOME%\webapps\hello
• PizzaServlet v1 o A déployer dans
%TOMCAT_HOME%\webapps\pizza o Page formulaire : doGet
• Code exemple fourni o Page confirmation : doPost
• Afficher la commande saisie
20
![Page 21: Tp java ee.pptx](https://reader034.vdocuments.fr/reader034/viewer/2022042514/5590345a1a28abef2c8b4669/html5/thumbnails/21.jpg)
PizzaServlet v2 • Outils : javac, notepad++, jar • Consignes :
o ne pas utiliser d’IDE comme Eclipse o ne pos déclarer de package o Il faudra rajouter %TOMCAT_HOME%\lib\servlet-api.jar dans le CLASSPATH
• Modifier l'exemple PizzaServlet fourni pour scinder le fonctionnement en plusieurs pages : o la première page demande le type de pizza et le nombre commandé o la seconde page demande l'adresse de livraison (nom, prenom,
detailAdresse, codePostal, ville) et le mode de paiement (carte, à la livraison)
o la 3eme page affiche la commande saisie • utilisez les sessions pour conserver les informations entre les pages
o n'utiliser qu'une seule servlet pour toute les pages
21
![Page 22: Tp java ee.pptx](https://reader034.vdocuments.fr/reader034/viewer/2022042514/5590345a1a28abef2c8b4669/html5/thumbnails/22.jpg)
TP 4 : JSP • Outils : notepad++ • Consignes : ne pas utiliser d’IDE comme Eclipse 1. convertir PizzaServlet v2 en 3 pages JSP
o Dans un sous-répertoire « mypizza » (autre nom que celui pour PizzaServlet)
2. utiliser les taglibs JSTL o Déployer les JSP dans une autre application web avec les taglibs o Utiliser <jsp:forward> si le nombre de pizza est <0 dans la 2nde page o Saisir une date de livraison à la 2nde page (format "dd/MM/YYYY") o Utiliser <fmt:formatDate> pour afficher la date de livraison à la 3eme
page (format "dd/MM/YYYY")
22
![Page 23: Tp java ee.pptx](https://reader034.vdocuments.fr/reader034/viewer/2022042514/5590345a1a28abef2c8b4669/html5/thumbnails/23.jpg)
Installer Eclipse • Installer Eclipse Juno JEE • Rajouter l’extension JBoss Tools • Déclarer les « Server Runtime » suivants :
o Apache 7, server name "Tomcat v7.0 Server at localhost" o JBoss AS 7.1, server name "JBoss 7.1 Runtime 1 Server
• Librairie JAR pour les exercices o Recopier le répertoire jar_libs des ressources du cours JEE vers C:\jar_libs o Déclarer la variable de CLASSPATH "JAR_LIBS"
• Menu Préferences, Java, Build Path, ClassPatch Variables • Faire pointer la variable "JAR_LIBS" vers C:\jar_libs
23
![Page 24: Tp java ee.pptx](https://reader034.vdocuments.fr/reader034/viewer/2022042514/5590345a1a28abef2c8b4669/html5/thumbnails/24.jpg)
Bonnes pratiques Eclipse • C:\Eclipse\binaries : pour les versions d’éclipse
o Installer eclipse sous C:\Eclipse\binaries\eclispe_juno_jee
• C:\Eclipse\workspaces : pour les workspaces
• Déclarer le runtime server et sa JVM • Mettre la console en taille illimitée • Désactiver le build automatique 24
![Page 25: Tp java ee.pptx](https://reader034.vdocuments.fr/reader034/viewer/2022042514/5590345a1a28abef2c8b4669/html5/thumbnails/25.jpg)
Rajouter un jar dans le classpath d'ʹun projet Eclipse
Clique droit sur un Projet, menu Properties Utiliser "Add Variable", puis extend pour chercher un jar depuis $JAR_LIBS
25
![Page 26: Tp java ee.pptx](https://reader034.vdocuments.fr/reader034/viewer/2022042514/5590345a1a28abef2c8b4669/html5/thumbnails/26.jpg)
TP 5 : JDBC + JUnit • Outils : Eclipse, MySQL, phpMyAdmin • Consignes :
o Utiliser la base de données fournies (URL : jdbc:mysql://localhost:3306/pizzadb) o Créer vos classes dans le package « fr.jpcarmona.tppizza.persistence » o Tracer les erreurs avec log4j o Implémenter les interfaces DAO pour les classes métier
• PizzaDAOImpl • OrderDAOImpl
o Faire des Junit de test de chaque méthode
• Afficher le toString() résultat
EndUser
+email+password+nickname+firstname+lastname
PizzaOrder
+deliveryDateHour+orderDateHour+comment+paymentMean: Enum+paymentRef
Pizza
+pizzaType: Enum+pizzaName
+pizzas 1..*
Address
+addressDetail+postalCode+city
+address 1
PizzaTypes :WhiteTomatoSpecial
+customer
0..*1
PaymentMean:cccashpaypal
26
nb: chaque classe hérite de BizBase
![Page 27: Tp java ee.pptx](https://reader034.vdocuments.fr/reader034/viewer/2022042514/5590345a1a28abef2c8b4669/html5/thumbnails/27.jpg)
MLD
27
![Page 28: Tp java ee.pptx](https://reader034.vdocuments.fr/reader034/viewer/2022042514/5590345a1a28abef2c8b4669/html5/thumbnails/28.jpg)
Création de la base dans PhpMyAdmin
• Création d'un user pizzadb/pizzadb avec sa base
• Puis import du code de pizzadb_export.sql dans l'onglet SQL
28
![Page 29: Tp java ee.pptx](https://reader034.vdocuments.fr/reader034/viewer/2022042514/5590345a1a28abef2c8b4669/html5/thumbnails/29.jpg)
TP 6 : Webapp "ʺPizzaWar"ʺ • Importer le projet PizzaWar_Debut
o Contient le code JDBC de création de commandes et de pizzas • le code n'accepte que la création de commande d'une pizza à la fois
o Déclare la DataSource jdbc/PizzaDB dans Tomcat o Déclare la Servlet ...ui.PizzaShopControlerServlet o Les DAO sont créés par la Servlet avec le DataSource Tomcat
• Créer la méthode de servlet de création de pizza o URL : pizzashop/createPizza
• Créer la page de la liste des pizzas à vendre o page admin/listePizzas.jsp appelée après la création d'une pizza
• Afficher la liste des pizzas en vente dans la combox (choice) de pizza1.jsp • depuis index.jsp appeler pizzaShop/displayOrderPage • mettre en session la liste des pizzas et retourner la page pizza1.jsp
29
![Page 30: Tp java ee.pptx](https://reader034.vdocuments.fr/reader034/viewer/2022042514/5590345a1a28abef2c8b4669/html5/thumbnails/30.jpg)
Architecture v1 – 3 tiers
30
![Page 31: Tp java ee.pptx](https://reader034.vdocuments.fr/reader034/viewer/2022042514/5590345a1a28abef2c8b4669/html5/thumbnails/31.jpg)
Arborescence index
front-‐‑office
création commande
back-‐‑office
gestion pizzas
gestion commande
31
![Page 32: Tp java ee.pptx](https://reader034.vdocuments.fr/reader034/viewer/2022042514/5590345a1a28abef2c8b4669/html5/thumbnails/32.jpg)
TP 7 : Bootstrap & JQuery • A partir du code de l'archive PizzaWar_debut fournie ou votre travail • Utiliser Bootstrap dans chaque page
o Utiliser la commande <jsp:include page="header.jsp"> <jsp:param name="titre" value="page2"/></jsp:include>
pour inclure une entête et un pied de page commun à chaque JSP • Utiliser request.getParameter("titre") dans header.jsp
o depuis la 1ere page de commande de pizza, appeler pizzas.option.html pour avoir une liste de pizzas dynamique
• Modifier le contrôleur pour ajouter un appel à l'API REST pizzas/id o La 3eme page doit afficher le nom de la pizza pas l'id
• appel Javascript à http://localhost:8080/PizzaWar/pizzashop/pizzas/<id>.json
32
![Page 33: Tp java ee.pptx](https://reader034.vdocuments.fr/reader034/viewer/2022042514/5590345a1a28abef2c8b4669/html5/thumbnails/33.jpg)
Architecture v2 -‐‑ 4 tiers
33
tppizza.biz.Pizza tppizza.biz.PizzaOrder
tppizza.biz.Pizza tppizza.biz.PizzaOrder
tppizza.biz.Pizza tppizza.biz.PizzaOrder tppizza.ui
tppizza.service
tppizza.persistence
EndUserManager PizzaManager
EndUserManagerBeanPizzaManagerBean
EndUserDAO PizzaDAO PizzaOrderDAO
DaoBase
PizzaShopControlerServet
JSPVue
Model
Controler
javax.sql.DataSource<<Interface>>
JEE Server manage a database connection pool
JNDI Connection
JNDI Connection
WAR
ejb-jar.jar
JAR
![Page 34: Tp java ee.pptx](https://reader034.vdocuments.fr/reader034/viewer/2022042514/5590345a1a28abef2c8b4669/html5/thumbnails/34.jpg)
TP8 : EJB
• Outils : Eclipse, JBoss avec Jboss Tools • Etapes :
o Installer Jboss (TP 2) o Ajouter JBossTools pour pouvoir créer un Server Runtime Jboss 7
• Depuis la servers window, add a server, server wizard, download additional server adapters, add JBoss AS Tools
o Déclarer la DataSource PizzaDS dans JBoss (voir pages suivantes) o Importer les projets PizzaEAR, PizzaEJB et PizzaBiz de PizzaEAR_debut.zip o Ne garder que le WebContent et le code java du package ".ui"
dans un projet PizzaWar (T2) • Le projet PizzaWar (T2) n'a plus le package "persistence" ni "biz" • Supprimer META-INF/context.xml et le ressource-ref dans WEB-INF/web.xml • Remplacer les accès à la DataSource dans PizzaShopServlet
par une connection aux EJB (au lieu des DAO et DataSource)
o @EJB(mappedName="java:global/PizzaEAR/PizzaEJB/PizzaManagerBean") o private PizzaManager pizzaManager;
o Appeler les EJB depuis la Servlet en utilisant l'annotation @EJB o Completer les méthodes en todo de PizzaManagerBean o Tester l'application PizzaEAR jusqu'à la création d'une commande de Pizza
34
![Page 35: Tp java ee.pptx](https://reader034.vdocuments.fr/reader034/viewer/2022042514/5590345a1a28abef2c8b4669/html5/thumbnails/35.jpg)
Déclarer une DataSource dans JBoss
o Dézipper mysql_jboss_module.zip sous $Jboss/modules o Déclarer la DataSource dans $Jboss/standalone/configuration/standalone.xml
<subsystem xmlns="ʺurn:jboss:domain:datasources:1.0"ʺ> <datasources> ... <datasource jndi-‐‑name="ʺjava:/PizzaDS"ʺ pool-‐‑name="ʺPizzaDS"ʺ enabled="ʺtrue"ʺ use-‐‑java-‐‑ context="ʺtrue"ʺ> <connection-‐‑url>jdbc:mysql://localhost:3306/pizzadb</connection-‐‑url> <driver>mysqlDriver</driver> <security> <user-‐‑name>root</user-‐‑name> <password></password> </security> </datasource> ... <drivers> .... <driver name="ʺmysqlDriver"ʺ module="ʺcom.mysql"ʺ> <xa-‐‑datasource-‐‑class>com.mysql.jdbc.Driver</xa-‐‑datasource-‐‑class> </driver> ...
35
![Page 36: Tp java ee.pptx](https://reader034.vdocuments.fr/reader034/viewer/2022042514/5590345a1a28abef2c8b4669/html5/thumbnails/36.jpg)
chemins JNDI possibles
Logs de bon démarrage ... 16:31:15,178 INFO [org.jboss.as.ejb3.deployment.processors.EjbJndiBindingsDeploymentUnitProcessor] (MSC service thread 1-7) JNDI bindings for session bean named PizzaManagerBean in deployment unit subdeployment "PizzaEJB.jar" of deployment "PizzaEAR.ear" are as follows:
java:global/PizzaEAR/PizzaEJB/PizzaManagerBean!fr.jpcarmona.tppizza.service.PizzaManager java:app/PizzaEJB/PizzaManagerBean!fr.jpcarmona.tppizza.service.PizzaManager java:module/PizzaManagerBean!fr.jpcarmona.tppizza.service.PizzaManager java:jboss/exported/PizzaEAR/PizzaEJB/PizzaManagerBean!fr.jpcarmona.tppizza.service.PizzaManager java:global/PizzaEAR/PizzaEJB/PizzaManagerBean java:app/PizzaEJB/PizzaManagerBean java:module/PizzaManagerBean
... 16:31:15,964 INFO [org.jboss.web] (MSC service thread 1-4) JBAS018210: Registering web context: /PizzaWar 16:31:16,045 INFO [org.jboss.as.server] (DeploymentScanner-threads - 2) JBAS018559: Deployed "PizzaEAR.ear"
36
Chemin pour l'ʹURL : hUp://localhost:8080/PizzaWar
![Page 37: Tp java ee.pptx](https://reader034.vdocuments.fr/reader034/viewer/2022042514/5590345a1a28abef2c8b4669/html5/thumbnails/37.jpg)
Forcer un redéploiement En cas de message
• Alors : Rajouter un fichier nommé
PizzaEAR.ear.dodeploy • dans $Jboss/standalone/deployments
37
6:39:08,388 INFO [org.jboss.as.server.deployment.scanner] (DeploymentScanner-‐‑threads -‐‑ 1) JBAS015003: Found PizzaEAR.ear in deployment directory. To trigger deployment create a file called PizzaEAR.ear.dodeploy
![Page 38: Tp java ee.pptx](https://reader034.vdocuments.fr/reader034/viewer/2022042514/5590345a1a28abef2c8b4669/html5/thumbnails/38.jpg)
Créer des projets EJB et EAR pour Eclipse
Menu "New EAR Project", puis sélection des modules
menu "New EJB Project" :
38
![Page 39: Tp java ee.pptx](https://reader034.vdocuments.fr/reader034/viewer/2022042514/5590345a1a28abef2c8b4669/html5/thumbnails/39.jpg)
Gérer les librairies de l'ʹEAR dans Eclipse
39
![Page 40: Tp java ee.pptx](https://reader034.vdocuments.fr/reader034/viewer/2022042514/5590345a1a28abef2c8b4669/html5/thumbnails/40.jpg)
Configuration d’un Client JNDI Jboss 7
java.naming.factory.url.pkgs=org.jboss.ejb.client.naming jndi.properties
remote.connections=default remote.connection.default.host=127.0.0.1 remote.connection.default.port=4447 remote.connection.default.username=pizzafo remote.connection.default.password=***** endpointremote.connectionprovider.create.options.org.xnio.Options.SSL_ENABLED=false remote.connection.default.connect.options.org.xnio.Options.SASL_POLICY_NOANONYMOUS=false
jboss-‐‑ejb-‐‑client.properties
Context ctx = new InitialContext(); ctx.lookup("ʺejb:<EAR>/<EJBModule>//<EJBClassName>!<EJBInterfaceName>"ʺ);
Code java du client de l'ʹEJB
40
![Page 41: Tp java ee.pptx](https://reader034.vdocuments.fr/reader034/viewer/2022042514/5590345a1a28abef2c8b4669/html5/thumbnails/41.jpg)
Ajouter un utilisateur applicatif JBoss
• Depuis la ligne de commande JBoss o cd $JBOSS/bin o ./add-user.sh (puis selectionnez un application user) o Enter the details of the new user to add. o Realm (PizzaApp) : PizzaApp o Username (pizzafo) : pizzafo o Password : ***** o Re-enter Password : ***** o What roles do you want this user to belong to? (Please enter a comma
separated list, or leave blank for none) : frontoffice
41
![Page 42: Tp java ee.pptx](https://reader034.vdocuments.fr/reader034/viewer/2022042514/5590345a1a28abef2c8b4669/html5/thumbnails/42.jpg)
Admin Console JBoss
42
![Page 43: Tp java ee.pptx](https://reader034.vdocuments.fr/reader034/viewer/2022042514/5590345a1a28abef2c8b4669/html5/thumbnails/43.jpg)
Vue de l'ʹEAR dans JBoss
43
![Page 44: Tp java ee.pptx](https://reader034.vdocuments.fr/reader034/viewer/2022042514/5590345a1a28abef2c8b4669/html5/thumbnails/44.jpg)
Consulter l'ʹarbre JNDI JBoss
• Depuis la ligne de commande JBoss o cd $JBOSS/bin o ./jboss-cli.sh o You are disconnected at the moment. Type 'connect' to connect to the
server or 'help' for the list of supported commands.
o [disconnected /] connect o [standalone@localhost:9999 /]
• Depuis la log Jboss o ... INFO ... JNDI bindings for session bean named ....:
• ... • java:global/PizzaEAR/PizzaEJB/PizzaManagerBean • java:app/PizzaEJB/PizzaManagerBean • java:module/PizzaManagerBean
44
![Page 45: Tp java ee.pptx](https://reader034.vdocuments.fr/reader034/viewer/2022042514/5590345a1a28abef2c8b4669/html5/thumbnails/45.jpg)
TP9 JPA & transactions • Outils : Eclipse, Hibernate, MySQL
o Rajouter le facet JPA au projet PizzaBiz et PizzaEJB o Voir quickref_JPA.pdf et http://docs.oracle.com/javaee/6/api/
• Consignes : écrire en JPA la persistance de PizzaDAO puis de PizzaOrderDAO 1. Mettre les annotations JPA dans toutes les classes métier sauf adresse
• Pour simplifier, supprimez la classe BizBase et rajouter l'attribut id partout • Déclarer la classe EndUser en @Entity avec l'adresse en @Transient
et y définir l'attribut pizzaOrders comme dans le cours 2. Copier/coller et renommer les classes DAOImpl existantes en DAOJpaImpl
• Ignorer le paramètre whereClause pour retourner tous les éléments en base 3. Remplacez le DataSource par un entity manager dans l'EJB
• META-INF/persistence.xml doit être dans le projet PizzaEJB 4. Remplacez les appels JDBC par des appels JPA dans les nouveaux DAO
45
![Page 46: Tp java ee.pptx](https://reader034.vdocuments.fr/reader034/viewer/2022042514/5590345a1a28abef2c8b4669/html5/thumbnails/46.jpg)
TP9'ʹ finalisation PizzaEAR
• finir et faire fonctionner le TP jusqu'à la création d'une commande de pizza
• mettre le frontoffice.war dans tomcat o création d'un utilisateur dans Jboss o utilisation de l'API o voir le corrigé PizzaEAR avec le junit de l'EJB sous PizzaEJB\test\
• Optionnel : faire un backoffice.war dans l'EAR avec o La page de liste des commandes
o la page de prise en compte d'une commande o la fonction de modification de la liste des pizzas en ¬vente
46
![Page 47: Tp java ee.pptx](https://reader034.vdocuments.fr/reader034/viewer/2022042514/5590345a1a28abef2c8b4669/html5/thumbnails/47.jpg)
Connexion entre modules PizzaEjb
PizzaWar
MySQL
@EJB(name="ʺPizzaManager"ʺ)
@Resource(name="ʺjava:/PizzaDS"ʺ)
<datasource jndi-‐‑name="ʺjava:/PizzaDS"ʺ ... jdbc:mysql://localhost:3306/pizzadb
JBoss
DataSource
@PersistenceContext(unitName="ʺPizzaPU"ʺ)
<jta-‐‑data-‐‑source>java:/PizzaDS</jta-‐‑data-‐‑source>
persistence.xml
standalone.xml
PizzaManagerBean.java
PizzaShopControlerServlet.java
47