JEE pour les nuls - 3).pdf · 3 JEE pour les nuls • Ou bien : – J2EE pour les nuls – JEE pour

download JEE pour les nuls - 3).pdf · 3 JEE pour les nuls • Ou bien : – J2EE pour les nuls – JEE pour

of 52

  • date post

    12-Sep-2018
  • Category

    Documents

  • view

    235
  • download

    0

Embed Size (px)

Transcript of JEE pour les nuls - 3).pdf · 3 JEE pour les nuls • Ou bien : – J2EE pour les nuls – JEE pour

  • 1

    JEE pour les nuls*

    Atelier CRI du 15/01/2008

    * Je laisse la responsabilit de ce titre Alain Kermarrec ;-)

  • 2

    Licence

    Ce travail est mis disposition sous une licence Creative CommonsVous tes libres

    De reproduire, distribuer et communiquer cette cration au public De modifier cette cration

    Cette cration est mise disposition selon le Contrat Paternit-NonCommercial-ShareAlike 2.5 disponible en ligne http://creativecommons.org/licenses/by-nc-sa/2.5/

  • 3

    JEE pour les nuls

    Ou bien : J2EE pour les nuls JEE pour les null Java EE pour les nuls

    Allez on y va

  • 4

    Java

    Langage Objet Multiplateforme

    Utilisation dune JVM (Java Virtual Machine)

    JVM JRE (Java Runtime

    Environment) JDK (Java

    Development Kit) JRE + javac + javadoc +

    JavaJava

    JVMJVM

    OSOS

  • 5

    JAVA

    JRE Sun (Pour Solaris, Linux, Windows), IBM (AIX, Linux,

    etc.), BEA, Apple (Mac) Microsoft (http://www.microsoft.com/mscorp/java/faq.mspx) :

    Which third-party Java Run-time Environment (JRE) doesMicrosoft recommend?

    Because Microsoft does not support third-party Java implementations, including monitoring and fixes of potential and exposed security vulnerabilities, we do not distribute or makerecommendations on these products. However, customers caninstall any compatible Java virtual machine on any computer running Microsoft Windows that they wish. Microsoft works withthird parties to ensure that they have all of the information they need for their technologies to work well in the Windows environment.

  • 6

    JAVA

    Langage objet On cre des objets en mmoire, partir de classes,

    pour stocker de linformation et/ou excuter des traitements

    Un objet est une instance dune classe Un objet est constitu dattributs et de mthodes

    Le code source dans un .java Javac du JDK le transforme en .class Le .class est excut dans un JRE

    Un Test1.class gnr sous windows fonctionnera sur Linux

    Ex : java Test1

  • 7

    Java

    On ne dveloppe jamais seul Des bibliothques de classes

    tout faire existent dj Notre .class va faire appel

    ces classes (importer) pour crer de nouveaux objets

    Quand on va lancer notre programme la JVM devra savoir o trouver ces classes

    On parle de classpath Ex : java -cp bin;util Test2

  • 8

    JAVA

    Pour les maniaques du rangement ! Les classes sont dans des rpertoires

    Pour avoir un espace de nom propre et viter les conflits Par domaine pour sy retrouver On utilise le . comme sparateur de rpertoires

    Exemple org.esupportail.commons.services.smtp.AsynchronousSmtpServiceImpl org.esupportail utilisation du nom de domaine esup-portail.org

    lenvers (le - nest pas valide) commons pour esup-commons services.smtp pour le service de mail AsynchronousSmtpServiceImpl Le nom de la classe avec Une

    majuscule en premire lettre et sur chaque mot

  • 9

    On fait des Zip de tout a Cest plus pratique Ce sont des .jar (Java Archive)

    Dans le classpath on utilise donc : Des rpertoires de Classes Des Zip de Classes Ex : java -cp bin;util Test3

    java.lang.NoClassDefFoundError: org/apache/log4j/Logger

    Mieux : java -cp bin;util;lib/log4j-1.2.13.jar Test3

    JAVA

  • 10

    Lancer java

    En gnral les scripts shell utilisent la variable denvironnement JAVA_HOME pour pointer vers le rpertoire dinstallation de java

    $JAVA_HOME/bin contient lexcutable java qui va servir au lancement du programme

    Quelques options de la ligne de commande java On a vu la gestion du classpath

    -cp path1;path2;fic1.jar:fic2.jar On peut grer la mmoire minimum et maximum alloue

    -Xms512m -Xmx1024m On peut faire du debug distance

    -Xdebug -Xrunjdwp:transport=dt_socket,address=55555,server=y,suspend=n On peut faire de ladministration distance

    On utilisant JMX (Java Management Extensions) -Dcom.sun.management.jmxremote.port=9004

  • 11

    Objets et interfaces

    Objets Attributs

    Peuvent tre accessibles directement Mais trs souvent on cre des mthodes pour manipuler les

    attributs (des accesseurs ) Meilleure matrise de lvolution du contenu de lobjet Ex : une Personne un nom on aura une mthode pour connatre

    son non getNom()

    Mthodes Pour manipuler les donnes dun objet ou offrir un service

    Ex : raymond.travailleMaintenant() ! Une mthode un peu particulire est appele la cration de

    lobjet : Le constructeur

  • 12

    Interfaces Dfinition dune liste de mthodes On va pouvoir utiliser tout objet qui sait

    rpondre cette liste de mthodes On dit quil implmente linterface Ex : raymond.travailleMaintenant() devient

    robot.travailleMaintenant() ( ou )

    On va voir lutilit de ce mcanisme dans les serveurs dapplications o lon va pouvoir brancher des applications

    Objets et interfaces

  • 13

    Revenons Java EE

    Java ME (Micro Edition) Je ne connais pas bien

    Java SE (Standard Edition) On peut tout faire avec Sert de base Java EE

    Java EE (Enterprise Edition) Lusine gaz et fric que le temps,

    lexprience et lOpen Source ont rendu accessible

  • 14

    Java EE

    Cest un gros package de technologies Sur lesquelles je vais revenir

    JSP ; Servlet ; EJB Ou pas

    JSF (Java Server Faces. Utilis dans les dveloppements ESUP et Rennes 1)

    JMS (Java Message Service) JAX-RPC (Java API for XML-Based RPC) Etc.

    En java, chaque technologie majeure passe par une phase ouverte de spcification JCP (Java Community Process http://www.jcp.org) Production de JSR (Java Specification Request Ex. de JSR 168

    pour portlet)

  • 15

    La machine de guerre

    Comme le cadre de travail est clair tout le monde y va : Les diteurs (Oracle, IBM, SUN) lancent des

    serveurs dapplications compatibles Java EE Les DSI forment leurs personnels Les SSII vendent de la prestation

    Oui mais : Les dveloppeurs souffrent sur certains points Les prix sont parfois astronomiques

  • 16

    Alors ?

    JSP et Servlet sont incontournables Apache Tomcat est un serveur dapplications (non Java

    EE au sens stricte) qui ne fait que a mais le fait bien et gratuitement

    Et pour tout le reste ? Accs aux donnes Les EJB sont trop lourds on

    utilise Hibernate On organise les dveloppements avec un conteneur

    lger comme Spring Si on a tel ou tel besoin on va trouver en Open Source

    la bibliothque quil faut

  • 17

    Servlet

    Cest une classe java qui va produire le contenu dune page Web

    Cette classe doit implmenter linterface Servlet Pratiquement on doit crire, dans une mthode

    prcise, le code java produisant le HTML Le serveur dapplications va savoir appeler cette

    mthode Vous vous souvenez du puzzle ?

  • 18

    JSP

    Java Server Page Ecrire une servlet cest bien mais cest

    encore trop compliqu Il faut crire une classe et la compiler

    JSP permet dincrer facilement du JAVA dans une page HTML Cest le serveur dapplication qui va se charger

    de la transformer en Servlet et de la compiler quand il le faut

  • 19

    JSP et Servlet

    Ce que je viens de vous dcrire cest du bricolage Dans la pratique

    Les JSP servent au rendu (Vue) et font appel des classes mtier crites en java (Modle) qui appellent, leur tour, le service de stockage de linformation (en base de donnes par ex.)

    Une Servlet sert aiguiller entre les vues (Contrleur) On parle alors de MVC (Modle, Vue, Contrleur)

  • 20

    Et si on rangeait ? Ouai !

    On va mettre toutes les JSP, Servlet ainsi que les Classes et librairies quelles utilisent dans un .war (Web Archive) Cest encore un zip On y trouve toujours

    WEB-INF/ web.xml lib/ Classes/

  • 21

    On sy retrouve mieux

    web.xml Est un fichier XML de description de lapplication Il a une syntaxe prcise On va, par ex., y trouver le nom de la Classe (implmentant

    linterface Servlet) utiliser pour tel ou tel chemin dune URL Web Lib/

    On va y mettre tous les .jar dont notre programme a besoin Classes/

    On va y mettre toutes les .class que lon produit Le serveur dapplications va savoir, pour chaque

    application quil hberge, lire le web.xml et crer automatiquement un classpath spcifique lapplication partir des rpertoires lib et classes

  • 22

    EJB

    Enterprise Java Bean Bean

    Objet dont les attributs ne sont accessibles que par des accesseurs et dont un des constructeurs ne prend aucun paramtre

    Java OK

    Enterprise Compliqu ? Solide ? Lourd ? Cher ?

    Ils sont de deux types Les EJB session Les EJB entit

  • 23

    EJB

    Lide de dpart (EJB 1 et 2) Avoir des objets qui offrent des services (Les EJB

    session) rpartis, pour des questions de charge, sur diffrents serveurs

    Avoir un mcanisme standard de persistance des donnes contenues dans les objets (Les EJB Entit)

    Dans la pratique cest compliqu Besoin, pour les objets, dimplmenter une interface

    particulire Objets non utilisables hors dun serveur Java EE Pas facilement portable dun serveur un autre

  • 24

    Hibernate

    Hibernate est un exemple doutil de mappingobjet Relationnel Le mapping est dfini dans des fichiers XML Un objet devient une ligne dune table dans une base de donnes Un attribut devient un champ de cette ligne

    Permet de stocker tout objet (pas dinterface particulire) Utilisable hors dun serveur dapplications Java EE

    Un simple Tomcat Un programme batch

  • 25

    EJB 3

    EJB 3 reprend les principes dHibe