Introduction JavaEE
Bureau E204
[Link]@[Link]
© 2019-2020 – ESPRIT – Module JAVAEE – Introduction JAVAEE 1
Plan du Cours
– Introduction : Horaires, Evaluation
– Java / JavaEE et le Marché de l'Emploi
– Objectifs et Contenu du Module JavaEE
– Rappels : POO, Java, JDK, JRE, …
– Définitions : JavaEE, Architecture N-tiers (Client / Serveur)
– Outils : JDK, Eclipse, WildFly, MySQL, Maven
© 2019-2020 – ESPRIT – Module JAVAEE – Introduction JAVAEE 2
Horaires
09h00
10h30
15
• Durée Totale : 42 heures
• Cours : 10 heures 12h15
• TP : 32 heures
14h00
15h30
• Durée de chaque Séance : 3 heures 15
• Durée de la Pause : 15 minutes
17h10
© 2019-2020 – ESPRIT – Module JAVAEE – Introduction JAVAEE 3
Evaluation
• L’évaluation se fait tout au long du module, et non pas uniquement à la fin.
• La moyenne du module est calculée comme suit :
Moyenne = Note Contrôle Continu * 40% + Note Examen * 60%
• Le contrôle continu prend en compte : L’Assiduité, Les TP à faire chez vous, Les Quiz.
• L’examen sera un examen pratique.
© 2019-2020 – ESPRIT – Module JAVAEE – Introduction JAVAEE 4
Java et le Marché du Travail
• Voici, au prochain slide, le Top 10 des langages les plus
demandés par les employeurs, en 2018.
• Java est le troisième sur environ 150 langages.
• Le classement ne prend en compte que les données US.
• Source IEEE : [Link] (Organisation à but non
lucratif).
• Les Types de demandes : Web, Mobile, Client Lourd, Embarqué :
© 2019-2020 – ESPRIT – Module JAVAEE – Introduction JAVAEE 5
Java et le Marché du Travail
© 2019-2020 – ESPRIT – Module JAVAEE – Introduction JAVAEE 6
Objectifs du Module JavaEE
• Comprendre l’Architectures n-tiers
• Comprendre les Spécifications JavaEE (EJB, JPA, JSF)
• Préparer un Environnement de Développement JavaEE : JDK,
WildFly, Eclipse, MySQL, Maven.
• Concevoir, Développer et Déployer des applications
d’entreprise JavaEE (Front End + Back End = Full Stack).
• Ces applications utilisent l’ensemble des Spécifications,
Frameworks et Outils mentionnés ci-dessus.
© 2019-2020 – ESPRIT – Module JAVAEE – Introduction JAVAEE 7
Contenu du Module JavaEE
• Introduction JavaEE
• Mise en place de l’environnement de développement
• Déploiement d’un premier projet Maven
• Les spécifications EJB
• Les spécifications JPA
• Les spécifications JSF
• Projet utilisant Maven, EJB, JPA, JSF.
• Préparation de l’examen
© 2019-2020 – ESPRIT – Module JAVAEE – Introduction JAVAEE 8
Rappels : POO
• La Programmation Orientée Objet (POO) consiste à modéliser
informatiquement un ensemble d'éléments du monde réel, en
un ensemble d'entités informatiques (Objets).
• La classe est une abstraction des propriétés communes (attributs
et méthodes) d'un ensemble d'objets.
• Un objet est créé par mécanisme d'instanciation, c'est une
instance d'une classe.
© 2019-2020 – ESPRIT – Module JAVAEE – Introduction JAVAEE 9
Rappels : POO
Un objet est une instance d’une classe
compte1 : Compte
5FTOOHF
24/09/1997
compte2 :Compte 1 623 DT
4ZYCTRH
16/04/1999
212 DT compte3 :Compte
6HJYSDSF6
12/11/2010
- 305 DT
© 2019-2020 – ESPRIT – Module JAVAEE – Introduction JAVAEE 10
Rappels : Java - JDK
• Java : Langage orienté objet, semi-compilé (.class), semi-
interprété (par la JVM), portable(«Compile once, run
everywhere»), gratuit.
• Ce langage est développé par Sun puis repris par Oracle.
• JDK : (Java Development Kit) est un ensemble d’API (JDBC, …)
et de commandes (javac, …) indispensables au développeur
Java pour programmer en java, compiler (javac …), exécuter
(java …), monitorer ses programmes Java.
• Il existe plusieurs plateformes basées sur Java : Java SE, Java EE
/ Jakarta EE, Java ME, Java Card … :
© 2019-2020 – ESPRIT – Module JAVAEE – Introduction JAVAEE 11
Plateformes Java
• Java SE : Java Standard Edition est une plateforme qui contient
les libraires nécessaires pour créer une application Java basique
([Link], [Link], [Link], ….)
• Java ME : Java Micro Edition permet de développer des
applications pour Mobile, et pour dispositifs Embarqués.
• Java Card: un système d'exploitation pour carte à puce qui
fournit essentiellement un environnement d'exécution pour un
sous-ensemble du langage Java spécifiquement destiné aux
applications pour carte à puce.
• JavaEE (J2EE puis Java EE / JEE puis Jakarta EE) : Java Enterprise
Edition contient JavaSE, et d’autres librairies pour créer des
applications d’Entreprises (EJB, JPA, JSF, Servlets, …).
© 2019-2020 – ESPRIT – Module JAVAEE – Introduction JAVAEE 12
JRE
• Dans chaque JDK, il y a un JRE :
• JRE : (Java Runtime Environment) est une famille d’exécutables
(java …) qui permet l'exécution des programmes écrits en Java.
JRE ⊂ JDK
© 2019-2020 – ESPRIT – Module JAVAEE – Introduction JAVAEE 13
Jakarta EE
• [Link] :
• “Q: What is Jakarta EE?
• A: Jakarta EE is the future for cloud-native, light-weight, and
traditional enterprise Java applications
• Java EE technologies contributed by Oracle are being used to create the
new Jakarta EE platform
• The Eclipse Foundation is the home of Cloud Native Java open innovation
• The Jakarta EE Working Group is focused on modernizing Java EE
technologies and governance processes to be more open and community-
based”
• PS : Nous continuons à utiliser la plateforme JavaEE fournie par Oracle,
et non la plateforme JakartaEE fournie par Eclipse.
© 2019-2020 – ESPRIT – Module JAVAEE – Introduction JAVAEE 14
Java - JVM
• JVM : C’est une Machine Virtuelle Java (Ensemble de ressources
réservées) qui permet d’interpréter du Bytecode (fichiers .class)
Compile once, run everywhere
• javac [Link] : Compile la classe [Link] pour
générer [Link]
• java Compte : Exécute la classe [Link]
© 2019-2020 – ESPRIT – Module JAVAEE – Introduction JAVAEE 15
Définitions : JavaEE
• JavaEE : Contient JavaSE, et d’autre librairies pour créer des
applications d’Entreprises (EJB, JPA, JSF, Servlets, …) :
Java EE = JavaSE + Librairies
• JavaEE permet de faciliter le développement des applications
Web pour les entreprises (Affichage, Accès à la base de
données, …).
© 2019-2020 – ESPRIT – Module JAVAEE – Introduction JAVAEE 16
Définitions : Spécifications JavaEE
• JSR: Java Specification Request : C’est une description formelle
(normalisation ou standardisation) de ce qu’un composant doit
offrir.
• Exemple de spécification : JSR 338 : Java Persistence API, V 2.2
• JPA est une Spécification (normalisation et standardisation de la
communication avec la DB).
• Hibernate est un produit (Implémentation de cette
spécification).
© 2019-2020 – ESPRIT – Module JAVAEE – Introduction JAVAEE 17
Architecture Physique - 1-Tiers
• Tier est un mot anglais qui signifie étage ou niveau.
• Une application peut être 1-Tier, 2-Tiers, 3-Tiers ou N-Tiers.
• Une application 1-Tier est, par exemple, la Modification d’un
document Word sur un ordinateur Local.
• Tout est sur la même machine.
• Inconvénients : Risque de perte des données (non sauvegardées à
distance), Impossible d’accéder à une même ressource par deux
utilisateurs en même temps.
© 2019-2020 – ESPRIT – Module JAVAEE – Introduction JAVAEE 18
Architecture Physique - 2-Tiers
• Une application 2-Tiers est typiquement une application client lourd.
• Le niveau Présentation (IHM) et le niveau Traitement sont sur la machine
de l’utilisateur.
• Le niveau Base de Données est sur un autre serveur.
• C’est une architecture Client / Serveur.
• Inconvénient : Toute mise à jour des fonctionnalités nécessitent un
déploiement sur toutes les machines des utilisateurs.
© 2019-2020 – ESPRIT – Module JAVAEE – Introduction JAVAEE 19
Architecture Physique - 3-Tiers
• Une application 3-Tiers est typiquement une application Web :
– Niveau Présentation : IHM (Navigateur sur la machine de l’utilisateur)
– Niveau Traitement : Un serveur web (Tomcat, …) qui contient le WAR de
notre application.
– Niveau Base de données : Un serveur de BD qui stocke les données de
notre application.
© 2019-2020 – ESPRIT – Module JAVAEE – Introduction JAVAEE 20
Architecture Physique - N-Tiers (Multi-Tiers)
• La couche traitement peut utiliser plusieurs serveurs si, par
exemple, on fait appel à un web services distants sur d’autres
serveurs applicatifs.
• Voici un exemple d’architecture 2-Tiers, 3-Tiers et 4-Tiers.
© 2019-2020 – ESPRIT – Module JAVAEE – Introduction JAVAEE 21
Installation des Outils
• Les outils suivant vont nous permettre de développer des applications
d’entreprise JavaEE :
• JDK 8 - version [Link] - (1.8 -peu importe la version mineure- déjà installé sur
vos machine normalement)
• WildFly 11.0.0
• Eclipse 2018-12
• WAMP ou XAMP (déjà installé sur vos machine normalement), pour avoir
MySQL 5.6.17
• Maven 3.5.0 (existe déjà en tant que plugin Eclipse, rien à installer).
• Vous pouvez créer un dossier C:\Products, dans lequel, vous allez installer
tous les logiciels que nous allons utiliser par la suite.
• Utiliser le Drive (choisir le dossier 2019 – 2020) :
[Link]
WPo?usp=sharing
© 2019-2020 – ESPRIT – Module JAVAEE – Introduction JAVAEE 22
Installation JDK 8
• Installer la JDK dans C:\Products\java\jdk-[Link]
• Installer la JRE dans C:\Products\java\jre-[Link]
• La JRE est installée en même temps que la JDK.
• Créer la variable d’environnement système : JAVA_HOME qui
contient le chemin de la JDK:
© 2019-2020 – ESPRIT – Module JAVAEE – Introduction JAVAEE 23
Installation JDK 8
• Ajouter %JAVA_HOME%\bin au Path :
© 2019-2020 – ESPRIT – Module JAVAEE – Introduction JAVAEE 24
Installation JDK 8
• Vérifier que Java est bien installé et que la variable
d’environnement est bien positionnée (javac et java) :
© 2019-2020 – ESPRIT – Module JAVAEE – Introduction JAVAEE 25
Installation Eclipse IDE
• Récupérer le zip de Eclipse 2018-12-R (Release) du drive (voir
page précédente)
ou du site officiel :
[Link]
12/r
• Dézipper eclipse-jee-2018-12-R-win32-x86_64.zip dans
C:\Products\eclipse-jee-2018-12
© 2019-2020 – ESPRIT – Module JAVAEE – Introduction JAVAEE 26
Configuration Eclipse IDE
© 2019-2020 – ESPRIT – Module JAVAEE – Introduction JAVAEE 27
Configuration IDE Eclipse
• Ouvrir Eclipse, choisissez le workspace, par exemple :
• Et cliquer sur WorkBench.
© 2019-2020 – ESPRIT – Module JAVAEE – Introduction JAVAEE 28
Configuration IDE Eclipse
• Faire pointer Eclipse IDE sur JDK 8 :
• Ouvrir window -> preferences -> installed jre -> mettre que la jdk 8(pas la jre). Voir
slides suivants
• Supprimer la ligne correspondant à la JRE
• Créer une standard VM en pointant sur la JDK :
• Important : Pointer sur la JDK et non la JRE (Window – Preference – Installed JRE).
© 2019-2020 – ESPRIT – Module JAVAEE – Introduction JAVAEE 29
Configuration IDE Eclipse
• Important : Pointer votre Execution Environment vers la JDK.
© 2019-2020 – ESPRIT – Module JAVAEE – Introduction JAVAEE 30
Configuration IDE Eclipse
• Activer l’auto-complétion (CTRL + ESPACE) : Windows -
Preferences - Java - Content Assist – Advanced :
© 2019-2020 – ESPRIT – Module JAVAEE – Introduction JAVAEE 31
Installation WildFly
• Décompresser le fichier “[Link]”
dans C:\Products\wildfly-11.0.0 par exemple.
• Installer notepad++ ou autre éditeur de texte
pour voir le [Link] et les autres fichiers texte.
© 2019-2020 – ESPRIT – Module JAVAEE – Introduction JAVAEE 32
Configuration WildFly (Ajout User)
• Ajouter le user : admin / password : adminwildfly
• Ouvrir une Invite de commande
• Aller dans C:\Products\wildfly-11.0.0\bin
• Lancer la commande [Link]
• Suivre les instructions pour ajouter / activer (s’il existe déjà) le
user admin :
© 2019-2020 – ESPRIT – Module JAVAEE – Introduction JAVAEE 33
Configuration WildFly (Activer User)
© 2019-2020 – ESPRIT – Module JAVAEE – Introduction JAVAEE 34
Configuration WildFly (Mise à jour Password)
© 2019-2020 – ESPRIT – Module JAVAEE – Introduction JAVAEE 35
Configuration WildFly (Mise à jour Password)
© 2019-2020 – ESPRIT – Module JAVAEE – Introduction JAVAEE 36
Configuration WildFly (Ajout Driver)
• Ajouter le driver MySQL pour pouvoir se connecter à la base de
données MySQL :
• Créer l’arborescence : C:\Products\wildfly-
11.0.0\modules\system\layers\base\com\mysql\jdbc\main
• Copier les 2 fichiers suivants (à partir du Drive) vers le dossier ci-
dessus :
© 2019-2020 – ESPRIT – Module JAVAEE – Introduction JAVAEE 37
Configuration WildFly (Ajout Driver)
• Mettre à jour [Link] en ajoutant la ligne dans la balise
<drivers> :
<driver name="mysql" module="[Link]"/>
• Ne rien supprimer de ce fichier.
• Si la base de données MySQL (WAMP ou XAMP) n’est pas encore
installée sur votre machine, ce n’est pas un problème. Nous verrons
cela lors du cours JPA.
© 2019-2020 – ESPRIT – Module JAVAEE – Introduction JAVAEE 38
Configuration WildFly (Choix du Port)
• Ouvrir C:\Products\wildfly-
11.0.0\standalone\configuration\[Link]
• Mettre à jour la propriété (ne pas faire un copier coller, risque
d’erreur) :
<socket-binding-group name="standard-sockets" default-
interface="public" port-offset="${[Link]-
offset:1000}">
• Ceci permettra de garder le port 8080 pour Tomcat. Et de
choisir le port 9080 pour Wildfly.
© 2019-2020 – ESPRIT – Module JAVAEE – Introduction JAVAEE 39
Configuration WildFly dans Eclipse
• Ouvrir Eclipse, Aller a la Vue « servers » (Window -> Show View ->
Servers), New -> Server (vous devez être connecté à Internet) :
© 2019-2020 – ESPRIT – Module JAVAEE – Introduction JAVAEE 40
Configuration WildFly dans Eclipse
• Accepter les conditions du contrat de licence
• Laisser Eclipse télécharger les plugins nécessaires, et suivre les
instructions (Accepter d’installer les plugins, Redémarrer Eclipse,
Accepter ou non l’envoi de données à JBoss ).
• Après redémarrage d’Eclipse, Recommencer l’ajout du serveur :
• Aller a la Vue « servers » (Window -> Show View -> Servers), New
-> Server
• Choisir Wildfly 11.
• Il s’agit d’un serveur local, et choisir « Create New Runtime » :
© 2019-2020 – ESPRIT – Module JAVAEE – Introduction JAVAEE 41
Configuration WildFly dans Eclipse
© 2019-2020 – ESPRIT – Module JAVAEE – Introduction JAVAEE 42
Configuration WildFly dans Eclipse
• Démarrer le serveur, voir dans les logs sur quel port est démarré
(Window -> Show View -> Console).
• [Link] devra affiché “Your WildFly 11 is running“.
• [Link] tester l’accès à l’interface admin.
• 14:22:19,365 INFO … HTTP listener default listening on [Link]:9080
• 14:22:19,970 INFO … Admin console listening on [Link]
• 14:22:19,970 INFO …WildFly Full [Link] … started in 4507ms
© 2019-2020 – ESPRIT – Module JAVAEE – Introduction JAVAEE 43
Prochain Cours
• Finaliser l’Installation de l’Environnement de travail (JDK, Eclipse,
WildFly, MySQL)
• Comprendre Maven
• Créer vos premiers projets avec les outils ci-dessus.
© 2019-2020 – ESPRIT – Module JAVAEE – Introduction JAVAEE 44
INTRODUCTION JAVAEE
Si vous avez des questions, n’hésitez pas à nous
contacter :
Département Informatique
UP JavaEE / .NET
Bureau E204
Mourad HASSINI
[Link]@[Link]
© 2019-2020 – ESPRIT – Module JAVAEE – Introduction JAVAEE 45
Introduction JAVAEE
© 2019-2020 – ESPRIT – Module JAVAEE – Introduction JAVAEE 46