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

52
1 JEE pour les nuls* Atelier CRI du 15/01/2008 * Je laisse la responsabilité de ce titre à Alain Kermarrec ;-)

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

Page 1: JEE pour les nuls - SCIMAT3).pdf · 3 JEE pour les nuls • Ou bien : – J2EE pour les nuls – JEE pour les null – Java EE pour les nuls • Allez on y va…

1

JEE pour les nuls*

Atelier CRI du 15/01/2008

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

Page 2: JEE pour les nuls - SCIMAT3).pdf · 3 JEE pour les nuls • Ou bien : – J2EE pour les nuls – JEE pour les null – Java EE pour les nuls • Allez on y va…

2

Licence

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

De reproduire, distribuer et communiquer cette création au public De modifier cette création

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

Page 3: JEE pour les nuls - SCIMAT3).pdf · 3 JEE pour les nuls • Ou bien : – J2EE pour les nuls – JEE pour les null – Java EE pour les nuls • Allez on y va…

3

JEE pour les nuls

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

• Allez on y va…

Page 4: JEE pour les nuls - SCIMAT3).pdf · 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 d’une JVM (Java Virtual Machine)

• JVM– JRE (Java Runtime

Environment)– JDK (Java

Development Kit)• JRE + javac + javadoc +

JavaJava

JVMJVM

OSOS

Page 5: JEE pour les nuls - SCIMAT3).pdf · 3 JEE pour les nuls • Ou bien : – J2EE pour les nuls – JEE pour les null – Java EE pour les nuls • Allez on y va…

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.

Page 6: JEE pour les nuls - SCIMAT3).pdf · 3 JEE pour les nuls • Ou bien : – J2EE pour les nuls – JEE pour les null – Java EE pour les nuls • Allez on y va…

6

JAVA

• Langage objet– On crée des objets en mémoire, à partir de classes,

pour stocker de l’information et/ou exécuter des traitements

• Un objet est une instance d’une classe• Un objet est constitué d’attributs et de méthodes

• Le code source dans un .java• Javac du JDK le transforme en .class• Le .class est exécuté dans un JRE

– Un Test1.class généré sous windows fonctionnera sur Linux

– Ex : java Test1

Page 7: JEE pour les nuls - SCIMAT3).pdf · 3 JEE pour les nuls • Ou bien : – J2EE pour les nuls – JEE pour les null – Java EE pour les nuls • Allez on y va…

7

Java

• On ne développe jamais seul• Des bibliothèques de classes

à tout faire existent déjà• Notre .class va faire appel à

ces classes (importer) pour créer 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

Page 8: JEE pour les nuls - SCIMAT3).pdf · 3 JEE pour les nuls • Ou bien : – J2EE pour les nuls – JEE pour les null – Java EE pour les nuls • Allez on y va…

8

JAVA

• Pour les maniaques du rangement !• Les classes sont dans des répertoires

– Pour avoir un espace de nom propre et éviter les conflits– Par domaine pour s’y retrouver– On utilise le « . » comme séparateur de répertoires

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

l’envers (le « - » n’est pas valide)– commons � pour esup-commons– services.smtp � pour le service de mail– AsynchronousSmtpServiceImpl � Le nom de la classe avec Une

majuscule en première lettre et sur chaque mot

Page 9: JEE pour les nuls - SCIMAT3).pdf · 3 JEE pour les nuls • Ou bien : – J2EE pour les nuls – JEE pour les null – Java EE pour les nuls • Allez on y va…

9

• On fait des Zip de tout ça – C’est plus pratique– Ce sont des .jar (Java Archive)

• Dans le classpath on utilise donc :– Des répertoires 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

Page 10: JEE pour les nuls - SCIMAT3).pdf · 3 JEE pour les nuls • Ou bien : – J2EE pour les nuls – JEE pour les null – Java EE pour les nuls • Allez on y va…

10

Lancer java

• En général les scripts shell utilisent la variable d’environnement JAVA_HOME pour pointer vers le répertoire d’installation de java

• $JAVA_HOME/bin contient l’exécutable « 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 gérer la mémoire minimum et maximum allouée

• -Xms512m -Xmx1024m– On peut faire du debug à distance

• -Xdebug -Xrunjdwp:transport=dt_socket,address=55555,server=y,suspend=n– On peut faire de l’administration à distance

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

Page 11: JEE pour les nuls - SCIMAT3).pdf · 3 JEE pour les nuls • Ou bien : – J2EE pour les nuls – JEE pour les null – Java EE pour les nuls • Allez on y va…

11

Objets et interfaces

• Objets– Attributs

• Peuvent être accessibles directement• Mais très souvent on crée des méthodes pour manipuler les

attributs (des « accesseurs »)– Meilleure maîtrise de l’évolution du contenu de l’objet– Ex : une Personne à un nom on aura une méthode pour connaître

son non � getNom()

– Méthodes• Pour manipuler les données d’un objet ou offrir un service

– Ex : raymond.travailleMaintenant() !• Une méthode un peu particulière est appelée à la création de

l’objet : Le constructeur

Page 12: JEE pour les nuls - SCIMAT3).pdf · 3 JEE pour les nuls • Ou bien : – J2EE pour les nuls – JEE pour les null – Java EE pour les nuls • Allez on y va…

12

• Interfaces– Définition d’une liste de méthodes– On va pouvoir utiliser tout objet qui sait

répondre à cette liste de méthodes• On dit qu’il implémente l’interface• Ex : raymond.travailleMaintenant() devient

robot.travailleMaintenant() (☺ ou �)

– On va voir l’utilité de ce mécanisme dans les serveurs d’applications où l’on va pouvoir « brancher » des applications

Objets et interfaces

Page 13: JEE pour les nuls - SCIMAT3).pdf · 3 JEE pour les nuls • Ou bien : – J2EE pour les nuls – JEE pour les null – Java EE pour les nuls • Allez on y va…

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)– L’usine à gaz et à fric que le temps,

l’expérience et l’Open Source ont rendu accessible

Page 14: JEE pour les nuls - SCIMAT3).pdf · 3 JEE pour les nuls • Ou bien : – J2EE pour les nuls – JEE pour les null – Java EE pour les nuls • Allez on y va…

14

Java EE

• C’est un gros package de technologies– Sur lesquelles je vais revenir

• JSP ; Servlet ; EJB– Ou pas

• JSF (Java Server Faces. Utilisé dans les développements 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 spécification– JCP (Java Community Process � http://www.jcp.org)– Production de JSR (Java Specification Request � Ex. de JSR 168

pour portlet)

Page 15: JEE pour les nuls - SCIMAT3).pdf · 3 JEE pour les nuls • Ou bien : – J2EE pour les nuls – JEE pour les null – Java EE pour les nuls • Allez on y va…

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 d’applications compatibles Java EE– Les DSI forment leurs personnels– Les SSII vendent de la prestation

• Oui mais :– Les développeurs souffrent sur certains points– Les prix sont parfois astronomiques

Page 16: JEE pour les nuls - SCIMAT3).pdf · 3 JEE pour les nuls • Ou bien : – J2EE pour les nuls – JEE pour les null – Java EE pour les nuls • Allez on y va…

16

Alors ?

• JSP et Servlet sont incontournables– Apache Tomcat est un serveur d’applications (non Java

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

• Et pour tout le reste ?– Accès aux données � Les EJB sont trop lourds on

utilise Hibernate– On organise les développements avec un conteneur

léger comme Spring– Si on a tel ou tel besoin on va trouver en Open Source

la bibliothèque qu’il faut

Page 17: JEE pour les nuls - SCIMAT3).pdf · 3 JEE pour les nuls • Ou bien : – J2EE pour les nuls – JEE pour les null – Java EE pour les nuls • Allez on y va…

17

Servlet

• C’est une classe java qui va produire le contenu d’une page Web

• Cette classe doit implémenter l’interface Servlet• Pratiquement on doit écrire, dans une méthode

précise, le code java produisant le HTML• Le serveur d’applications va savoir appeler cette

méthode– Vous vous souvenez du puzzle ?

Page 18: JEE pour les nuls - SCIMAT3).pdf · 3 JEE pour les nuls • Ou bien : – J2EE pour les nuls – JEE pour les null – Java EE pour les nuls • Allez on y va…

18

JSP

• Java Server Page• Ecrire une servlet c’est bien mais c’est

encore trop compliqué– Il faut écrire une classe et la compiler

• JSP permet d’incérer facilement du JAVA dans une page HTML– C’est le serveur d’application qui va se charger

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

Page 19: JEE pour les nuls - SCIMAT3).pdf · 3 JEE pour les nuls • Ou bien : – J2EE pour les nuls – JEE pour les null – Java EE pour les nuls • Allez on y va…

19

JSP et Servlet

• Ce que je viens de vous décrire c’est du bricolage• Dans la pratique

– Les JSP servent au rendu (Vue) et font appel à des classes « métier » écrites en java (Modèle) qui appellent, à leur tour, le service de stockage de l’information (en base de données par ex.)

– Une Servlet sert à aiguiller entre les vues (Contrôleur)– On parle alors de MVC (Modèle, Vue, Contrôleur)

Page 20: JEE pour les nuls - SCIMAT3).pdf · 3 JEE pour les nuls • Ou bien : – J2EE pour les nuls – JEE pour les null – Java EE pour les nuls • Allez on y va…

20

Et si on rangeait ? Ouai !

• On va mettre toutes les JSP, Servlet ainsi que les Classes et librairies qu’elles utilisent dans un .war (Web Archive)– C’est encore un zip– On y trouve toujours

• WEB-INF/– web.xml– lib/– Classes/

Page 21: JEE pour les nuls - SCIMAT3).pdf · 3 JEE pour les nuls • Ou bien : – J2EE pour les nuls – JEE pour les null – Java EE pour les nuls • Allez on y va…

21

On s’y retrouve mieux ☺

• web.xml– Est un fichier XML de description de l’application– Il a une syntaxe précise– On va, par ex., y trouver le nom de la Classe (implémentant

l’interface Servlet) à utiliser pour tel ou tel chemin d’une URL Web• Lib/

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

– On va y mettre toutes les .class que l’on produit• Le serveur d’applications va savoir, pour chaque

application qu’il héberge, lire le web.xml et créer automatiquement un classpath spécifique à l’application àpartir des répertoires lib et classes

Page 22: JEE pour les nuls - SCIMAT3).pdf · 3 JEE pour les nuls • Ou bien : – J2EE pour les nuls – JEE pour les null – Java EE pour les nuls • Allez on y va…

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 paramètre

– Java• OK

– Enterprise• Compliqué ? Solide ? Lourd ? Cher ?

• Ils sont de deux types– Les EJB session– Les EJB entité

Page 23: JEE pour les nuls - SCIMAT3).pdf · 3 JEE pour les nuls • Ou bien : – J2EE pour les nuls – JEE pour les null – Java EE pour les nuls • Allez on y va…

23

EJB

• L’idée de départ (EJB 1 et 2)– Avoir des objets qui offrent des services (Les EJB

session) répartis, pour des questions de charge, sur différents serveurs

– Avoir un mécanisme standard de persistance des données contenues dans les objets (Les EJB Entité)

• Dans la pratique c’est compliqué– Besoin, pour les objets, d’implémenter une interface

particulière– Objets non utilisables hors d’un serveur Java EE– Pas facilement portable d’un serveur à un autre

Page 24: JEE pour les nuls - SCIMAT3).pdf · 3 JEE pour les nuls • Ou bien : – J2EE pour les nuls – JEE pour les null – Java EE pour les nuls • Allez on y va…

24

Hibernate

• Hibernate est un exemple d’outil de mappingobjet <-> Relationnel– Le mapping est défini dans des fichiers XML– Un objet devient une ligne d’une table dans une base de données– Un attribut devient un champ de cette ligne

• Permet de stocker tout objet (pas d’interface particulière)• Utilisable hors d’un serveur d’applications Java EE

– Un simple Tomcat– Un programme batch

Page 25: JEE pour les nuls - SCIMAT3).pdf · 3 JEE pour les nuls • Ou bien : – J2EE pour les nuls – JEE pour les null – Java EE pour les nuls • Allez on y va…

25

EJB 3

• EJB 3 reprend les principes d’Hibernate• Hibernate est compatibles avec EJB 3• L’honneur est sauf et les DSI restent en poste ;-)• EJB 3 est surtout focaliser sur l’enregistrement

des données– JPA (Java Persistence API)

• EJB 3 (JSR 220) fait parti de Java EE 5– Faites moi penser à vous parler de versions !

Page 26: JEE pour les nuls - SCIMAT3).pdf · 3 JEE pour les nuls • Ou bien : – J2EE pour les nuls – JEE pour les null – Java EE pour les nuls • Allez on y va…

26

Et les EJB session ?

• Les Web Services mais aussi les framework MVC et les conteneurs légers font qu’ils n’ont plus besoin d’exister en tant que tel

• Un Web Service– « C’est un EJB session » sauf que l’on utilise

HTTP pour communiquer et qu’il n’est pas obligatoirement écrit en java

Page 27: JEE pour les nuls - SCIMAT3).pdf · 3 JEE pour les nuls • Ou bien : – J2EE pour les nuls – JEE pour les null – Java EE pour les nuls • Allez on y va…

27

Conteneur léger

• Son rôle est de créer automatiquement des objets et de les mettre en relation– C’est ce que fait un serveur Java EE !– Mais il est léger :

• Pas besoin, pour les objets manipulés, d’implémenter une interface particulière

• Utilisable hors d’un serveur Java EE (Tomcat, Batch)• Il est tellement léger qu’il est intégré dans l’application et que

son utilisation impacte seulement les développeurs, pas les exploitants

• Permet de facilement changer un morceau (de puzzle) par un autre

• Ex. de Spring très apprécié des développeurs

Page 28: JEE pour les nuls - SCIMAT3).pdf · 3 JEE pour les nuls • Ou bien : – J2EE pour les nuls – JEE pour les null – Java EE pour les nuls • Allez on y va…

28

ESUP-Commons

• Ou comment fabriquer un pseudo serveur Java EE commun

• Une démarche– Esup-blank– Des outils communs– Du rangement

• Une librairie• Une formation• Une communauté

Page 29: JEE pour les nuls - SCIMAT3).pdf · 3 JEE pour les nuls • Ou bien : – J2EE pour les nuls – JEE pour les null – Java EE pour les nuls • Allez on y va…

29

ESUP-Commons, le puzzle

Gestion

des beans

dataw

eb

Présentation

Logique applicative

Logique métier

Données

Persistance

Requêtes web

base

LDA

P

portail

UR

Ls

I18n

Cache

Accès

Auth.

Page 30: JEE pour les nuls - SCIMAT3).pdf · 3 JEE pour les nuls • Ou bien : – J2EE pour les nuls – JEE pour les null – Java EE pour les nuls • Allez on y va…

30

Les versions de java

• 1.2– Quel est l’idiot qui a oublié de changer le premier numéro ?– Que sera la version 2.0 ?– J2SE 1.2, J2EE 1.2

• 1.3– J2SE 1.3, J2EE 1.3

• 1.4– J2SE 1.4, J2EE 1.4

• 1.5– J2SE 1.5, Java EE 5

• 1.6– Java SE 6

• En général les scripts shell utilisent la variable d’environnement JAVA_HOME pour savoir quelle version de java utiliser pour lancer un programme donné

Page 31: JEE pour les nuls - SCIMAT3).pdf · 3 JEE pour les nuls • Ou bien : – J2EE pour les nuls – JEE pour les null – Java EE pour les nuls • Allez on y va…

31

Qu’ai-je oublié ?

• J’ai parlé Servlet (Classe java qui fonctionne dans un serveur d’applications) mais :– C’est quoi un Portlet ?– C’est quoi une Applet ?

• Les exceptions

Page 32: JEE pour les nuls - SCIMAT3).pdf · 3 JEE pour les nuls • Ou bien : – J2EE pour les nuls – JEE pour les null – Java EE pour les nuls • Allez on y va…

32

C’est quoi un Portlet ?

• Une classe java (conforme à la JSR 168) qui tourne dans un portail– Le but est d’avoir sur une même page Web

plusieurs applications (portail)– C’est sous forme d’un .war comme une

application Web avec un WEB-INF/portlet.xml en plus

– L’interface à implémenter n’est plus Servletmais Portlet

Page 33: JEE pour les nuls - SCIMAT3).pdf · 3 JEE pour les nuls • Ou bien : – J2EE pour les nuls – JEE pour les null – Java EE pour les nuls • Allez on y va…

33

C’est quoi une Applet

• C’est une classe java qui tourne dans une JVM intégrée au navigateur Web et qui s’exécute sur le poste client– C’est sous forme d’un .jar que le navigateur va

télécharger sur le web– Je n’en sais pas plus

Page 34: JEE pour les nuls - SCIMAT3).pdf · 3 JEE pour les nuls • Ou bien : – J2EE pour les nuls – JEE pour les null – Java EE pour les nuls • Allez on y va…

34

Les exceptions

• En java quand quelque chose se passe mal on a une exception– java.lang.NullPointerException– java.io.FileNotFoundException

• Pour le développeur c’est pratique– Il essaie (try) des choses– Il attrape (catch) des exceptions pour éventuellement

les traiter– Et s’il ne sait pas faire il soumet (throw) le problème au

chef (en fait, la méthode qui l’appelle dans la pile d’exécution (stack))

Page 35: JEE pour les nuls - SCIMAT3).pdf · 3 JEE pour les nuls • Ou bien : – J2EE pour les nuls – JEE pour les null – Java EE pour les nuls • Allez on y va…

35

Les exceptions

• Ce sont aussi des objets avec des méthodes pour connaître :– La cause

• En générale on lève une exception parce que l’on a eu un autre problème avant

• org.esupportail.lecture.exceptions.dao.XMLParseException à cause d’une org.dom4j.DocumentException

– Le message• org.dom4j.DocumentException: Connection refused

– La pile d’exécution• org.dom4j.DocumentException: Connection refused

org.dom4j.io.SAXReader.read(SAXReader.java:484)• org.dom4j.io.SAXReader.read(SAXReader.java:321)• org.esupportail.lecture.dao.FreshSourceThread.getFreshSource

(FreshSourceThread.java:81)• org.esupportail.lecture.dao.FreshSourceThread.run

(FreshSourceThread.java:57)

Page 36: JEE pour les nuls - SCIMAT3).pdf · 3 JEE pour les nuls • Ou bien : – J2EE pour les nuls – JEE pour les null – Java EE pour les nuls • Allez on y va…

36

Travaux pratiques

• ANT• Voir une config Spring• Voir une config log4j• Eclipse et SVN

Page 37: JEE pour les nuls - SCIMAT3).pdf · 3 JEE pour les nuls • Ou bien : – J2EE pour les nuls – JEE pour les null – Java EE pour les nuls • Allez on y va…

37

ANT

• ANT est un outil permettant d’automatiser des tâches (comme make utilisé sous Unix)

• Le fait qu’il soit écrit en java permet qu’il soit utilisable sur toutes les plateformes disposant une JVM

• Le principe repose sur des cibles (target) décrites dans un fichier XML (build.xml le plus souvent)– Les cibles peuvent avoir des relations de dépendance

entre elles– Elles peuvent faire référence à des propriétés

contenues dans un(des) fichier(s) de propriétés facilement éditable(s) (par un exploitant par ex.)

Page 38: JEE pour les nuls - SCIMAT3).pdf · 3 JEE pour les nuls • Ou bien : – J2EE pour les nuls – JEE pour les null – Java EE pour les nuls • Allez on y va…

38

ANT

• Les cibles ont à leur disposition des tâches (task) pour effectuer différentes actions :– echo, mkdir, copy, replaceregexp, jar, javac, javadoc, etc.

• Les tâches agissent sur des ensembles de fichiers :– fileset, pathelement, etc.

• Mode de lancement de ANT– ant � exécute la cible par défaut (utilisation du build.xml du

répertoire courant)– ant –p � donne la liste des cibles disponibles– ant deploy � lance la cible « deploy » en charge d’installer

(déployer) une application– ant deluser -Duser=toto � lance la cible « deluser » de

suppression du user toto de la base de données du portail

Page 39: JEE pour les nuls - SCIMAT3).pdf · 3 JEE pour les nuls • Ou bien : – J2EE pour les nuls – JEE pour les null – Java EE pour les nuls • Allez on y va…

39

ANT

• Un exemple de cible :

Page 40: JEE pour les nuls - SCIMAT3).pdf · 3 JEE pour les nuls • Ou bien : – J2EE pour les nuls – JEE pour les null – Java EE pour les nuls • Allez on y va…

40

Spring

• Spring est un conteneur léger– Son rôle est de créer des objets et de les mettre en

relation• Le développeur utilise des objets mais il n’écrit plus le code de

création de ces objets• Il demande à Spring de les lui fournir

– Spring permet de facilement changer un morceau (de puzzle) par un autre

• Si un développeur a besoin d’un objet pour envoyer du mail• Et qu’une interface définie que l’envoi de mail se fait en

utilisant une méthode de nom send• Le développeur a juste besoin d’appeler cette méthode• Spring va se charger de créer le bon objet au bon moment

Page 41: JEE pour les nuls - SCIMAT3).pdf · 3 JEE pour les nuls • Ou bien : – J2EE pour les nuls – JEE pour les null – Java EE pour les nuls • Allez on y va…

41

Spring

• Va appeler les objets qu’il gère des beans• La définition de ces beans se fait dans un fichier XML• Le développeur ne s’occupe plus de ça (il veut juste

envoyer un mail)– Il n’a même plus à se soucier du traitement du fichier de

configuration contenant l’adresse du serveur de mail– Vous comprenez pourquoi je vous disais que les développeurs

aimaient Spring ;-)

• L’exploitant a accès à ce fichier XML et peut tout changer– S’il le veut il peut même envoyer les mails dans une base de

données pour archivage et ne plus utiliser SMTP

Page 42: JEE pour les nuls - SCIMAT3).pdf · 3 JEE pour les nuls • Ou bien : – J2EE pour les nuls – JEE pour les null – Java EE pour les nuls • Allez on y va…

42

Spring

Page 43: JEE pour les nuls - SCIMAT3).pdf · 3 JEE pour les nuls • Ou bien : – J2EE pour les nuls – JEE pour les null – Java EE pour les nuls • Allez on y va…

43

Spring

• On peut centraliser le paramétrage

Page 44: JEE pour les nuls - SCIMAT3).pdf · 3 JEE pour les nuls • Ou bien : – J2EE pour les nuls – JEE pour les null – Java EE pour les nuls • Allez on y va…

44

log4j

• Log for Java• Depuis java 1.4 il existe, en standard dans la

JVM, un mécanisme de log qui ressemble beaucoup à ce qui existait déjà avec log4j

• Apache commons logging met tout le monde d’accord en offrant une surcouche au développeur

• Le développeur logue tout :– Les erreurs (ERROR), les avertissements (WARN), des

informations plus ou moins importantes pour l’exploitant (INFO) ou lui (DEBUG)

Page 45: JEE pour les nuls - SCIMAT3).pdf · 3 JEE pour les nuls • Ou bien : – J2EE pour les nuls – JEE pour les null – Java EE pour les nuls • Allez on y va…

45

log4j

• C’est l’exploitant ensuite qui décide de ce qu’il garde, oùet comment– Grace à un fichier log4j.properties ou log4j.xml qu’il met à la racine

du classpath (emplacement par défaut) ou dans properties/logging(pour un développement esup-commons)

– Il a sa disposition des appenders (où seront envoyés les logs)• Fichiers tournants ou pas• Syslog• Etc.

– Il décide de quelles classes il veut les logs en précisant• L’appender à utiliser• Le niveau de log souhaité

– ERROR, WARN, INFO, DEBUG

Page 46: JEE pour les nuls - SCIMAT3).pdf · 3 JEE pour les nuls • Ou bien : – J2EE pour les nuls – JEE pour les null – Java EE pour les nuls • Allez on y va…

46

log4J

Page 47: JEE pour les nuls - SCIMAT3).pdf · 3 JEE pour les nuls • Ou bien : – J2EE pour les nuls – JEE pour les null – Java EE pour les nuls • Allez on y va…

47

Eclipse

• Eclipse est un IDE écrit en java qui permet, entre autres choses, de développer en JAVA– Coloration syntaxique, auto-complétion, vérification des erreurs à

la volée, etc.• Il est très modulaire et permet de facilement éditer

différents type de fichiers grâce à différents plugins– Editeur XML générique– Editeur ANT– Editeur Spring– Etc.

• Il offre aussi des outils intéressants– Navigateur LDAP ou SQL– Client SVN

Page 48: JEE pour les nuls - SCIMAT3).pdf · 3 JEE pour les nuls • Ou bien : – J2EE pour les nuls – JEE pour les null – Java EE pour les nuls • Allez on y va…

48

SVN

• SubVerSion est un outil de gestion des versions– Très utilisé par les développeurs il pourrait

(devrait ?) l’être par les exploitants pour gérer leurs fichiers de configuration

– Quand un développeur n’utilisant pas SVN le découvre après avoir longtemps résisté, il se demande comment il a pu s’en passer

Page 49: JEE pour les nuls - SCIMAT3).pdf · 3 JEE pour les nuls • Ou bien : – J2EE pour les nuls – JEE pour les null – Java EE pour les nuls • Allez on y va…

49

• C’est simple !– Checkout � on prend ce qui est sur le serveur

pour le mettre en local– Update � on met à jour ce qui est local avec

ce qui est sur le serveur– Commit � on met à jour le serveur avec ce qui

a été modifié en local

SVN

Page 50: JEE pour les nuls - SCIMAT3).pdf · 3 JEE pour les nuls • Ou bien : – J2EE pour les nuls – JEE pour les null – Java EE pour les nuls • Allez on y va…

50

• On peut faire un tag � C’est juste une copie, une image à un moment donné, de ce qui est sur le serveur (ex : version mise en prod le 01/04/2007)

• Quand ça ne marche plus :– On a des outils pour voir ce qui a changé depuis telle

date, tel tag– On peut revenir (switch) à l’image à une date, un tag

• On peut facilement travailler à plusieurs :– Au pire on devra faire une fusion (merge) et décider

laquelle des deux modifications est la plus pertinentes

SVN

Page 51: JEE pour les nuls - SCIMAT3).pdf · 3 JEE pour les nuls • Ou bien : – J2EE pour les nuls – JEE pour les null – Java EE pour les nuls • Allez on y va…

51

SVN

Page 52: JEE pour les nuls - SCIMAT3).pdf · 3 JEE pour les nuls • Ou bien : – J2EE pour les nuls – JEE pour les null – Java EE pour les nuls • Allez on y va…

52

Conclusion

• Java c’est :– Tentaculaire, passionnant, structurant

• Donc java peut rendre :– Insomniaque, psychorigide, maniaque

• Vous êtes prévenus. Faites attention !