Mais conteúdo relacionado
Semelhante a Introduction JavaEE (20)
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
Notas do Editor
- Le tier Tier 3 Web Service peut faire appel à un tier Tier 4 Web Service : Nous aurons une architecture 5 tiers