SlideShare uma empresa Scribd logo
1 de 41
© 2019-2020 – Introduction JAVAEE
Introduction JavaEE
Mourad HASSINI
https://www.linkedin.com/in/mouradhassini
mhassini@gmail.com
1
© 2019-2020 – Introduction JAVAEE
Plan du Cours
– Java / JavaEE et le Marché de l'Emploi
– Rappels : POO, Java, JDK, JRE, …
– Définitions : JavaEE, Architecture N-tiers (Client / Serveur)
– Outils : JDK, Eclipse, WildFly, MySQL, Maven
2
© 2019-2020 – Introduction JAVAEE
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 : https://www.ieee.org (Organisation à but non lucratif).
• Les Types de demandes : Web, Mobile, Client Lourd, Embarqué :
3
© 2019-2020 – Introduction JAVAEE
Java et le Marché du Travail
4
© 2019-2020 – Introduction JAVAEE
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.
5
© 2019-2020 – Introduction JAVAEE
compte2 :Compte
4ZYCTRH
16/04/1999
212 DT
compte1 : Compte
5FTOOHF
24/09/1997
1 623 DT
compte3 :Compte
6HJYSDSF6
12/11/2010
- 305 DT
Rappels : POO
Un objet est une instance d’une classe
6
© 2019-2020 – Introduction JAVAEE
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 … :
7
© 2019-2020 – Introduction JAVAEE
Plateformes Java
• Java SE : Java Standard Edition est une plateforme qui contient les
libraires nécessaires pour créer une application Java basique (java.io,
java.lang, java.sql, ….)
• 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, …).
8
© 2019-2020 – Introduction JAVAEE
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
9
© 2019-2020 – Introduction JAVAEE
Jakarta EE
• https://jakarta.ee/about/faq :
• “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.
10
© 2019-2020 – Introduction JAVAEE
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 Compte.java : Compile la classe Compte.java pour générer
Compte.class
• java Compte : Exécute la classe Compte.class
11
© 2019-2020 – Introduction JAVAEE
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, …).
12
© 2019-2020 – Introduction JAVAEE
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).
13
© 2019-2020 – Introduction JAVAEE
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.
14
© 2019-2020 – Introduction JAVAEE
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.
15
© 2019-2020 – Introduction JAVAEE
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.
16
© 2019-2020 – Introduction JAVAEE
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.
17
© 2019-2020 – Introduction JAVAEE
Installation des Outils
• Les outils suivant vont nous permettre de développer des applications d’entreprise
JavaEE :
• JDK 8 - version 1.8.0.060 - (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) :
https://drive.google.com/drive/folders/1vyliUMy06KWTGN35vqn5Rr0ueWVdxWPo?u
sp=sharing
18
© 2019-2020 – Introduction JAVAEE
Installation JDK 8
• Installer la JDK dans C:Productsjavajdk-1.8.0.60
• Installer la JRE dans C:Productsjavajre-1.8.0.60
• 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:
19
© 2019-2020 – Introduction JAVAEE
Installation JDK 8
• Ajouter %JAVA_HOME%bin au Path :
20
© 2019-2020 – Introduction JAVAEE
Installation JDK 8
• Vérifier que Java est bien installé et que la variable d’environnement
est bien positionnée (javac et java) :
21
© 2019-2020 – Introduction JAVAEE
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 :
https://www.eclipse.org/downloads/packages/release/2018-12/r
• Dézipper eclipse-jee-2018-12-R-win32-x86_64.zip dans
C:Productseclipse-jee-2018-12
22
© 2019-2020 – Introduction JAVAEE
Configuration Eclipse IDE
23
© 2019-2020 – Introduction JAVAEE
Configuration IDE Eclipse
• Ouvrir Eclipse, choisissez le workspace, par exemple :
• Et cliquer sur WorkBench.
24
© 2019-2020 – Introduction JAVAEE
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).
25
© 2019-2020 – Introduction JAVAEE
Configuration IDE Eclipse
• Important : Pointer votre Execution Environment vers la JDK.
26
© 2019-2020 – Introduction JAVAEE
Configuration IDE Eclipse
• Activer l’auto-complétion (CTRL + ESPACE) : Windows - Preferences
- Java - Content Assist – Advanced :
27
© 2019-2020 – Introduction JAVAEE
Installation WildFly
• Décompresser le fichier “wildfly-11.0.0.Final.zip”
dans C:Productswildfly-11.0.0 par exemple.
• Installer notepad++ ou autre éditeur de texte
pour voir le standalone.xml et les autres fichiers texte.
28
© 2019-2020 – Introduction JAVAEE
Configuration WildFly (Ajout User)
• Ajouter le user : admin / password : adminwildfly
• Ouvrir une Invite de commande
• Aller dans C:Productswildfly-11.0.0bin
• Lancer la commande add-user.bat
• Suivre les instructions pour ajouter / activer (s’il existe déjà) le user
admin :
29
© 2019-2020 – Introduction JAVAEE
Configuration WildFly (Activer User)
30
© 2019-2020 – Introduction JAVAEE
Configuration WildFly (Mise à jour Password)
31
© 2019-2020 – Introduction JAVAEE
Configuration WildFly (Mise à jour Password)
32
© 2019-2020 – Introduction JAVAEE
Configuration WildFly (Ajout Driver)
• Ajouter le driver MySQL pour pouvoir se connecter à la base de
données MySQL :
• Créer l’arborescence : C:Productswildfly-
11.0.0modulessystemlayersbasecommysqljdbcmain
• Copier les 2 fichiers suivants (à partir du Drive) vers le dossier ci-
dessus :
33
© 2019-2020 – Introduction JAVAEE
Configuration WildFly (Ajout Driver)
• Mettre à jour standalone.xml en ajoutant la ligne dans la balise
<drivers> :
<driver name="mysql" module="com.mysql.jdbc"/>
• 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.
34
© 2019-2020 – Introduction JAVAEE
Configuration WildFly (Choix du Port)
• Ouvrir C:Productswildfly-
11.0.0standaloneconfigurationstandalone.xml
• 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="${jboss.socket.binding.port-
offset:1000}">
• Ceci permettra de garder le port 8080 pour Tomcat. Et de choisir le
port 9080 pour Wildfly.
35
© 2019-2020 – Introduction JAVAEE
Configuration WildFly dans Eclipse
• Ouvrir Eclipse, Aller a la Vue « servers » (Window -> Show View ->
Servers), New -> Server (vous devez être connecté à Internet) :
36
© 2019-2020 – Introduction JAVAEE
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 » :
37
© 2019-2020 – Introduction JAVAEE
Configuration WildFly dans Eclipse
38
© 2019-2020 – Introduction JAVAEE
Configuration WildFly dans Eclipse
• Démarrer le serveur, voir dans les logs sur quel port est démarré
(Window -> Show View -> Console).
• http://localhost:9080 devra affiché “Your WildFly 11 is running“.
• http://127.0.0.1:10990 tester l’accès à l’interface admin.
• 14:22:19,365 INFO … HTTP listener default listening on 127.0.0.1:9080
• 14:22:19,970 INFO … Admin console listening on http://127.0.0.1:10990
• 14:22:19,970 INFO …WildFly Full 11.0.0.Final … started in 4507ms
39
© 2019-2020 – Introduction JAVAEE
INTRODUCTION JAVAEE
Si vous avez des questions, n’hésitez pas à nous
contacter :
Mourad HASSINI
mhassini@gmail.com
40
© 2019-2020 – Introduction JAVAEE
Introduction JAVAEE
41

Mais conteúdo relacionado

Mais procurados

Architecture java j2 ee a partager
Architecture java j2 ee a partagerArchitecture java j2 ee a partager
Architecture java j2 ee a partager
aliagadir
 

Mais procurados (20)

Formation JPA Avancé / Hibernate gratuite par Ippon 2014
Formation JPA Avancé / Hibernate gratuite par Ippon 2014Formation JPA Avancé / Hibernate gratuite par Ippon 2014
Formation JPA Avancé / Hibernate gratuite par Ippon 2014
 
Développement d'un site web jee de e commerce basé sur spring (m.youssfi)
Développement d'un site web jee de e commerce basé sur spring (m.youssfi)Développement d'un site web jee de e commerce basé sur spring (m.youssfi)
Développement d'un site web jee de e commerce basé sur spring (m.youssfi)
 
Support POO Java Deuxième Partie
Support POO Java Deuxième PartieSupport POO Java Deuxième Partie
Support POO Java Deuxième Partie
 
Support JEE Servlet Jsp MVC M.Youssfi
Support JEE Servlet Jsp MVC M.YoussfiSupport JEE Servlet Jsp MVC M.Youssfi
Support JEE Servlet Jsp MVC M.Youssfi
 
Support JEE Spring Inversion de Controle IOC et Spring MVC
Support JEE Spring Inversion de Controle IOC et Spring MVCSupport JEE Spring Inversion de Controle IOC et Spring MVC
Support JEE Spring Inversion de Controle IOC et Spring MVC
 
Support de Cours JSF2 Première partie Intégration avec Spring
Support de Cours JSF2 Première partie Intégration avec SpringSupport de Cours JSF2 Première partie Intégration avec Spring
Support de Cours JSF2 Première partie Intégration avec Spring
 
Support distributed computing and caching avec hazelcast
Support distributed computing and caching avec hazelcastSupport distributed computing and caching avec hazelcast
Support distributed computing and caching avec hazelcast
 
Support Java Avancé Troisième Partie
Support Java Avancé Troisième PartieSupport Java Avancé Troisième Partie
Support Java Avancé Troisième Partie
 
Les Streams de Java 8
Les Streams de Java 8Les Streams de Java 8
Les Streams de Java 8
 
Tp java ee.pptx
Tp java ee.pptxTp java ee.pptx
Tp java ee.pptx
 
Support NodeJS avec TypeScript Express MongoDB
Support NodeJS avec TypeScript Express MongoDBSupport NodeJS avec TypeScript Express MongoDB
Support NodeJS avec TypeScript Express MongoDB
 
Architecture jee principe de inversion de controle et injection des dependances
Architecture jee principe de inversion de controle et injection des dependancesArchitecture jee principe de inversion de controle et injection des dependances
Architecture jee principe de inversion de controle et injection des dependances
 
Introduction à React
Introduction à ReactIntroduction à React
Introduction à React
 
Servlets et JSP
Servlets et JSPServlets et JSP
Servlets et JSP
 
Support de cours Spring M.youssfi
Support de cours Spring  M.youssfiSupport de cours Spring  M.youssfi
Support de cours Spring M.youssfi
 
Architecture java j2 ee a partager
Architecture java j2 ee a partagerArchitecture java j2 ee a partager
Architecture java j2 ee a partager
 
Support de cours angular
Support de cours angularSupport de cours angular
Support de cours angular
 
Développement d'un site web de E-Commerce avec PHP (Première Partie)
Développement d'un site web de E-Commerce avec PHP (Première Partie)Développement d'un site web de E-Commerce avec PHP (Première Partie)
Développement d'un site web de E-Commerce avec PHP (Première Partie)
 
Introduction à spring boot
Introduction à spring bootIntroduction à spring boot
Introduction à spring boot
 
Support de cours EJB 3 version complète Par Mr Youssfi, ENSET, Université Ha...
Support de cours EJB 3 version complète Par Mr  Youssfi, ENSET, Université Ha...Support de cours EJB 3 version complète Par Mr  Youssfi, ENSET, Université Ha...
Support de cours EJB 3 version complète Par Mr Youssfi, ENSET, Université Ha...
 

Semelhante a Introduction JavaEE

0251-formation-java-programmation-objet.pdf
0251-formation-java-programmation-objet.pdf0251-formation-java-programmation-objet.pdf
0251-formation-java-programmation-objet.pdf
Ombotimbe Salifou
 

Semelhante a Introduction JavaEE (20)

J2EE vs .NET
J2EE vs .NETJ2EE vs .NET
J2EE vs .NET
 
J2 ee
J2 eeJ2 ee
J2 ee
 
Chap 02 poo en java
Chap 02 poo en javaChap 02 poo en java
Chap 02 poo en java
 
Développement d'applications pour la plateforme Java EE
Développement d'applications pour la plateforme Java EEDéveloppement d'applications pour la plateforme Java EE
Développement d'applications pour la plateforme Java EE
 
Rapport tp1 j2ee
Rapport tp1 j2eeRapport tp1 j2ee
Rapport tp1 j2ee
 
La plateforme de services dynamiques OSGi
La plateforme de services dynamiques OSGiLa plateforme de services dynamiques OSGi
La plateforme de services dynamiques OSGi
 
Scub Foundation, usine logicielle Java libre
Scub Foundation, usine logicielle Java libreScub Foundation, usine logicielle Java libre
Scub Foundation, usine logicielle Java libre
 
Architecture .net
Architecture  .netArchitecture  .net
Architecture .net
 
Objet Direct Formation Java pour devenir autonome
Objet Direct Formation Java pour devenir autonomeObjet Direct Formation Java pour devenir autonome
Objet Direct Formation Java pour devenir autonome
 
cours-gratuit.com--id-1964.pdf
cours-gratuit.com--id-1964.pdfcours-gratuit.com--id-1964.pdf
cours-gratuit.com--id-1964.pdf
 
Gwt oxiane-novae-lr
Gwt oxiane-novae-lrGwt oxiane-novae-lr
Gwt oxiane-novae-lr
 
0251-formation-java-programmation-objet.pdf
0251-formation-java-programmation-objet.pdf0251-formation-java-programmation-objet.pdf
0251-formation-java-programmation-objet.pdf
 
Gradle_LyonJUG
Gradle_LyonJUGGradle_LyonJUG
Gradle_LyonJUG
 
Java j2ee
Java j2eeJava j2ee
Java j2ee
 
Cours cordova & REST
Cours cordova & RESTCours cordova & REST
Cours cordova & REST
 
CV REBAI Hamida
CV REBAI HamidaCV REBAI Hamida
CV REBAI Hamida
 
1-supportpoojavapremirepartie-140408132307-phpapp01.pptx
1-supportpoojavapremirepartie-140408132307-phpapp01.pptx1-supportpoojavapremirepartie-140408132307-phpapp01.pptx
1-supportpoojavapremirepartie-140408132307-phpapp01.pptx
 
Javaoop
JavaoopJavaoop
Javaoop
 
Java & Etat de l'art
Java & Etat de l'artJava & Etat de l'art
Java & Etat de l'art
 
Java Fx Rapport
Java Fx RapportJava Fx Rapport
Java Fx Rapport
 

Introduction JavaEE

  • 1. © 2019-2020 – Introduction JAVAEE Introduction JavaEE Mourad HASSINI https://www.linkedin.com/in/mouradhassini mhassini@gmail.com 1
  • 2. © 2019-2020 – Introduction JAVAEE Plan du Cours – Java / JavaEE et le Marché de l'Emploi – Rappels : POO, Java, JDK, JRE, … – Définitions : JavaEE, Architecture N-tiers (Client / Serveur) – Outils : JDK, Eclipse, WildFly, MySQL, Maven 2
  • 3. © 2019-2020 – Introduction JAVAEE 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 : https://www.ieee.org (Organisation à but non lucratif). • Les Types de demandes : Web, Mobile, Client Lourd, Embarqué : 3
  • 4. © 2019-2020 – Introduction JAVAEE Java et le Marché du Travail 4
  • 5. © 2019-2020 – Introduction JAVAEE 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. 5
  • 6. © 2019-2020 – Introduction JAVAEE compte2 :Compte 4ZYCTRH 16/04/1999 212 DT compte1 : Compte 5FTOOHF 24/09/1997 1 623 DT compte3 :Compte 6HJYSDSF6 12/11/2010 - 305 DT Rappels : POO Un objet est une instance d’une classe 6
  • 7. © 2019-2020 – Introduction JAVAEE 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 … : 7
  • 8. © 2019-2020 – Introduction JAVAEE Plateformes Java • Java SE : Java Standard Edition est une plateforme qui contient les libraires nécessaires pour créer une application Java basique (java.io, java.lang, java.sql, ….) • 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, …). 8
  • 9. © 2019-2020 – Introduction JAVAEE 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 9
  • 10. © 2019-2020 – Introduction JAVAEE Jakarta EE • https://jakarta.ee/about/faq : • “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. 10
  • 11. © 2019-2020 – Introduction JAVAEE 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 Compte.java : Compile la classe Compte.java pour générer Compte.class • java Compte : Exécute la classe Compte.class 11
  • 12. © 2019-2020 – Introduction JAVAEE 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, …). 12
  • 13. © 2019-2020 – Introduction JAVAEE 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). 13
  • 14. © 2019-2020 – Introduction JAVAEE 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. 14
  • 15. © 2019-2020 – Introduction JAVAEE 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. 15
  • 16. © 2019-2020 – Introduction JAVAEE 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. 16
  • 17. © 2019-2020 – Introduction JAVAEE 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. 17
  • 18. © 2019-2020 – Introduction JAVAEE Installation des Outils • Les outils suivant vont nous permettre de développer des applications d’entreprise JavaEE : • JDK 8 - version 1.8.0.060 - (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) : https://drive.google.com/drive/folders/1vyliUMy06KWTGN35vqn5Rr0ueWVdxWPo?u sp=sharing 18
  • 19. © 2019-2020 – Introduction JAVAEE Installation JDK 8 • Installer la JDK dans C:Productsjavajdk-1.8.0.60 • Installer la JRE dans C:Productsjavajre-1.8.0.60 • 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: 19
  • 20. © 2019-2020 – Introduction JAVAEE Installation JDK 8 • Ajouter %JAVA_HOME%bin au Path : 20
  • 21. © 2019-2020 – Introduction JAVAEE Installation JDK 8 • Vérifier que Java est bien installé et que la variable d’environnement est bien positionnée (javac et java) : 21
  • 22. © 2019-2020 – Introduction JAVAEE 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 : https://www.eclipse.org/downloads/packages/release/2018-12/r • Dézipper eclipse-jee-2018-12-R-win32-x86_64.zip dans C:Productseclipse-jee-2018-12 22
  • 23. © 2019-2020 – Introduction JAVAEE Configuration Eclipse IDE 23
  • 24. © 2019-2020 – Introduction JAVAEE Configuration IDE Eclipse • Ouvrir Eclipse, choisissez le workspace, par exemple : • Et cliquer sur WorkBench. 24
  • 25. © 2019-2020 – Introduction JAVAEE 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). 25
  • 26. © 2019-2020 – Introduction JAVAEE Configuration IDE Eclipse • Important : Pointer votre Execution Environment vers la JDK. 26
  • 27. © 2019-2020 – Introduction JAVAEE Configuration IDE Eclipse • Activer l’auto-complétion (CTRL + ESPACE) : Windows - Preferences - Java - Content Assist – Advanced : 27
  • 28. © 2019-2020 – Introduction JAVAEE Installation WildFly • Décompresser le fichier “wildfly-11.0.0.Final.zip” dans C:Productswildfly-11.0.0 par exemple. • Installer notepad++ ou autre éditeur de texte pour voir le standalone.xml et les autres fichiers texte. 28
  • 29. © 2019-2020 – Introduction JAVAEE Configuration WildFly (Ajout User) • Ajouter le user : admin / password : adminwildfly • Ouvrir une Invite de commande • Aller dans C:Productswildfly-11.0.0bin • Lancer la commande add-user.bat • Suivre les instructions pour ajouter / activer (s’il existe déjà) le user admin : 29
  • 30. © 2019-2020 – Introduction JAVAEE Configuration WildFly (Activer User) 30
  • 31. © 2019-2020 – Introduction JAVAEE Configuration WildFly (Mise à jour Password) 31
  • 32. © 2019-2020 – Introduction JAVAEE Configuration WildFly (Mise à jour Password) 32
  • 33. © 2019-2020 – Introduction JAVAEE Configuration WildFly (Ajout Driver) • Ajouter le driver MySQL pour pouvoir se connecter à la base de données MySQL : • Créer l’arborescence : C:Productswildfly- 11.0.0modulessystemlayersbasecommysqljdbcmain • Copier les 2 fichiers suivants (à partir du Drive) vers le dossier ci- dessus : 33
  • 34. © 2019-2020 – Introduction JAVAEE Configuration WildFly (Ajout Driver) • Mettre à jour standalone.xml en ajoutant la ligne dans la balise <drivers> : <driver name="mysql" module="com.mysql.jdbc"/> • 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. 34
  • 35. © 2019-2020 – Introduction JAVAEE Configuration WildFly (Choix du Port) • Ouvrir C:Productswildfly- 11.0.0standaloneconfigurationstandalone.xml • 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="${jboss.socket.binding.port- offset:1000}"> • Ceci permettra de garder le port 8080 pour Tomcat. Et de choisir le port 9080 pour Wildfly. 35
  • 36. © 2019-2020 – Introduction JAVAEE Configuration WildFly dans Eclipse • Ouvrir Eclipse, Aller a la Vue « servers » (Window -> Show View -> Servers), New -> Server (vous devez être connecté à Internet) : 36
  • 37. © 2019-2020 – Introduction JAVAEE 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 » : 37
  • 38. © 2019-2020 – Introduction JAVAEE Configuration WildFly dans Eclipse 38
  • 39. © 2019-2020 – Introduction JAVAEE Configuration WildFly dans Eclipse • Démarrer le serveur, voir dans les logs sur quel port est démarré (Window -> Show View -> Console). • http://localhost:9080 devra affiché “Your WildFly 11 is running“. • http://127.0.0.1:10990 tester l’accès à l’interface admin. • 14:22:19,365 INFO … HTTP listener default listening on 127.0.0.1:9080 • 14:22:19,970 INFO … Admin console listening on http://127.0.0.1:10990 • 14:22:19,970 INFO …WildFly Full 11.0.0.Final … started in 4507ms 39
  • 40. © 2019-2020 – Introduction JAVAEE INTRODUCTION JAVAEE Si vous avez des questions, n’hésitez pas à nous contacter : Mourad HASSINI mhassini@gmail.com 40
  • 41. © 2019-2020 – Introduction JAVAEE Introduction JAVAEE 41

Notas do Editor

  1. Le tier Tier 3 Web Service peut faire appel à un tier Tier 4 Web Service : Nous aurons une architecture 5 tiers