Cours Java EE. Java EE Introduction. Prérequis / Objectifs. Installation logiciels. Plan du cours. Projet

Documents pareils
24/11/2011. Cours EJB/J2EE Copyright Michel Buffa. Plan du cours. EJB : les fondamentaux. Enterprise Java Bean. Enterprise Java Bean.

Compte Rendu d intégration d application

Institut Supérieur de Gestion. Cours pour 3 ème LFIG. Java Enterprise Edition Introduction Bayoudhi Chaouki

Architecture JEE. Objectifs attendus. Serveurs d applications JEE. Architectures JEE Normes JEE. Systèmes distribués

Cedric Dumoulin (C) The Java EE 7 Tutorial

Auto-évaluation Aperçu de l architecture Java EE

JOnAS 5. Serveur d application d

Types d applications pour la persistance. Outils de développement. Base de données préexistante? 3 modèles. Variantes avec passerelles

Environnements de Développement

Europa. Développement JEE 5. avec Eclipse. K a r i m D j a a f a r. A v e c l a c o n t r i b u t i o n d e O l i v i e r S a l v a t o r i

J2EE - Introduction. Développement web - Java. Plan du chapitre

1. Installation d'un serveur d'application JBoss:

Création d une application JEE

Java pour le Web. Cours Java - F. Michel

Java Enterprise Edition

TP JEE Développement Web en Java. Dans ce TP nous commencerons la programmation JEE par le premier niveau d une application JEE : l application web.

Java Naming and Directory Interface

Quelques patterns pour la persistance des objets avec DAO DAO. Principe de base. Utilité des DTOs. Le modèle de conception DTO (Data Transfer Object)

La persistance des données dans les applications : DAO, JPA, Hibernate... COMPIL 2010 francois.jannin@inp-toulouse.fr 1

Connexion à SQL Server 2005 à partir du serveur d application SJSAS 9 Utilisation d une interface JDBC

JOnAS Day 5.1. Outils de développements

Refonte front-office / back-office - Architecture & Conception -

4. SERVICES WEB REST 46

Avant-propos 1. Avant-propos Organisation du guide À qui s'adresse ce guide?...4

10. Base de données et Web. OlivierCuré

Introduction à la plateforme J2EE

Projet. But: consultation en temps réel d événements (cours de bourse, trafic d envoi SMS ) sur des téléphones portables. Serveur de diffusion

EXA1415 : Annotations

Cours en ligne Développement Java pour le web

IBM WebSphere Application Server 5.0 : Administration avancée

IBM Rational Application Developer pour WebSphere Software V8.5 accélère le développement d'applications de haute qualité.

J2EE. Java2 Enterprise Edition. Pierre Yves Gibello Mise à jour : 30 Septembre 2004

JOnAS Day 5.1. Clustering

Utilisation de Jakarta Tomcat

Architecture Orientée Service, JSON et API REST

Mise en œuvre des serveurs d application

Programme «Analyste Programmeur» Diplôme d état : «Développeur Informatique» Homologué au niveau III (Bac+2) (JO N 176 du 1 août 2003) (34 semaines)

Web Tier : déploiement de servlets

Apache Tomcat 6. Guide d'administration du serveur Java EE sous Windows et Linux. Résumé. Étienne LANGLET

Développement des Systèmes d Information

Hassene BELGACEM. Expériences Professionnelles. JEE architect / Technical leader. Ingénieur Informatique. Cycle Préparatoire

Projet Java EE Approfondi

Présentation du cours. Sécurité dans Java EE. Plan (1/2) Plan (2/2) Généralités sur la sécurité

Une introduction à la technologie EJB (2/3)

EJB. Karim Bouzoubaa Issam Kabbaj

Rapport de projet de fin d études

Composants logiciels Exemples : Java Beans, Enterprise Java Beans

Oracle9i Application Server version 2

Augmenter la disponibilité des applications JEE grâce au clustering : Le projet open source JShaft

Programmation par composants (1/3) Programmation par composants (2/3)

TP3. Mail. Attention aux fausses manoeuvres lors de ce TP vous pouvez endommager votre mail sur ouindose.

CQP Développeur Nouvelles Technologies (DNT)

Le passage à l échelle de serveur J2EE : le cas des EJB

La reconquête de vos marges de manœuvre

Quel ENT pour Paris 5?

Groupe Eyrolles, 2003 ISBN : X

INGÉNIEUR - DÉVELOPPEUR EXPÉRIMENT É JAVA. 28 ans - 7 ans d'expérience

Une Histoire de Migration Agile

TP WEBSERVICES. 1 Pré-requis. 1.1 L environnement de développement. 1.2 Les librairies nécessaires 1.3 SOAPUI

2 Chapitre 1 Introduction

Formation Webase 5. Formation Webase 5. Ses secrets, de l architecture MVC à l application Web. Adrien Grand <jpountz@via.ecp.fr> Centrale Réseaux

Comparaison des architectures J2EE et.net

Serveur d'application à la juste taille

arcopole Studio Version 3.1

Java EE. Java Enterprise Edition. Pierre-Yves Gibello - pierreyves.gibello@experlog.com (Mise à jour : Septembre 2011)

ADMINISTRATION DE ADOBE LIVECYCLE MOSAIC 9.5

Outil de planification en ligne pour des créations de rendez-vous ou de sondage

Formation Certifiante Scrum Master

Introduction à Java. Philippe Genoud.

WEBSERVICES. Michael Fortier. Master Informatique 2ème année. A308, Université de Paris 13

SIO Page 1 de 5. Applications Web dynamiques. Prof. : Dzenan Ridjanovic Assistant : Vincent Dussault

7 villa de la citadelle Né le 13 mai Arcueil Nationalité : Française. Développeur Web JEE COMPÉTENCES

Devenez un véritable développeur web en 3 mois!

Oracle Developer Suite 10g. Guide de l installation. Vista & Seven

2 chapitre Groupe Eyrolles, 2007

Ré-architecture et migration d une application standalone vers un serveur applicatif multi-tiers dans un contexte JAVA-SAP

Application web de gestion de comptes en banques

21 mars Simulations et Méthodes de Monte Carlo. DADI Charles-Abner. Objectifs et intérêt de ce T.E.R. Générer l'aléatoire.

NANTES ANGERS RENNES

Datalift. + + Architecture Modularité Déploiements. d j = 09/04/2015 Laurent BIHANIC

Remote Method Invocation (RMI)

Programme scientifique Majeure ARCHITECTURE DES SYSTEMES D INFORMATION. Mentions Ingénierie des Systèmes d Information Business Intelligence

Modernisation et développement d applications IBM i Stratégies, technologies et outils

Catalogue des Formations Techniques

Application Web et J2EE

Documentation de la plate forme JOnAS

Présentation J2EE. Stéphane Croisier, Directeur Serge Huber, Directeur Technique. 13 Juin Jahia Ltd. All rights reserved.

Point sur les solutions de développement d apps pour les périphériques mobiles

IBM DB2 Alphablox. d administration GC

Présentation de SOFI 2.0

Plan. Department of Informatics

Documentation de la plate forme JOnAS. Frederic Maistre

C-JDBC. Emmanuel Cecchet INRIA, Projet Sardes.

JOnAS 5 Enterprise OSGi javaee compliant

Applications et Services WEB: Architecture REST

DotNet. Plan. Les outils de développement

les techniques d'extraction, les formulaires et intégration dans un site WEB

Master Data Management en Open Source C est le Bon Moment

Première coupe : Introduction à la plateforme Java EE JAVA JAVA. Introduction à la plateforme Java EE. Introduction à la plateforme Java EE

Transcription:

Cours Java EE Java EE Introduction EMSI - Université de Nice Sophia Antipolis Richard Grin Version O 1.8 3/12/16 18 h 30 de cours et TD/TP Site du cours : http://richard.grin.free.fr/emsi/rabat Interrogation sans documents à la fin du cours, sur les concepts et savoir-faire essentiels (40 %) Projet à rendre en février 2017 (60 %) Richard Grin Présentation Java EE page 2 Installation logiciels Qui n a pas fini d installer tous les logiciels sur son ordinateur personnel? Qui n a pas commencé le TP 1 jusqu à «Création de classes entités à partir d une base de données existante»? Prérequis : HTML, HTTP Prérequis / Objectifs Bonne connaissance de Java Servlets (les bases) Bases de données relationnelles (transactions et accès concurrents en particulier) Objectif : Développement d applications Web avec Java EE, en particulier avec JSF, JPA et les EJB Richard Grin Présentation Java EE page 3 Richard Grin Présentation Java EE page 4 Plan du cours Introduction à Java EE (ce support) Suite du TP 1 EJB Introduction à CDI Fin du TP 1 (survol de JSF, EJB, JPA) ; Important de le finir JSF TP 2 (JSF et modèle PRG) TP 3 (templates de JSF) JPA 1 ère partie (bases) TP 4 (JPA) JPA 2 ème partie (associations et compléments) TP 5 (associations avec JPA) Richard Grin Présentation Java EE page 5 Projet Thème : réseau social pour le partage de vidéos et de pages Web Terminer tous les TPs Faire TP 6 sur JSF et HTML5 et sur vidéos YouTube Optionnel : faire TP 7 sur sécurité Bien lire les problèmes rencontrés lors des projets des années passées Richard Grin Présentation Java EE page 6 1

Présentation de Java EE Composants Plan de ce support Serveur d application et containers Formats de distribution Profiles JNDI Architecture d une application d entreprise Les applications d entreprise modernes sont des applications multi-tiers Richard Grin Présentation Java EE page 7 Richard Grin Présentation Java EE page 8 Couches d une application Java EE Sécurité, transactionnel, Concurrence, Souvent Web et mobile DAO, ORM, Les «vrais» traitements Java Enterprise Edition Java EE Pas un produit ; spécifications (32 dans Java EE 7) pour écrire des applications d entreprise en Java Les composants métier sont des Entreprise Java Beans (EJB) Nous étudierons une interface utilisateur de type Web, implémentée avec Java Server Faces (JSF) La couche d accès aux données utilisera «Java Persistence API» (JPA) Richard Grin Présentation Java EE page 9 Richard Grin Présentation Java EE page 10 Autre solution Java EE (partiellement) Service Web de type REST (API Java JAX-RS) Interface utilisateur Web pas Java EE : HTML5 JavaScript, éventuellement avec surcouche de type Angular ou React Quelle solution choisir? JSF convient très bien quand l interface Web n est pas trop complexe et pour les applications qui n ont pas des milliers de clients Web Si l application est «single page», avec de très nombreux clients et du code JavaScript complexe, choisir la solution service Web REST et clients Web HTML5 JavaScript Richard Grin Présentation Java EE page 11 Richard Grin Présentation Java EE page 12 2

Composant Java EE utilise la notion de composant, en particulier pour les EJB et les composants JSF Sur le modèle des composants électroniques, les composants logiciels sont des boîtes noires réutilisables configurables qui respectent des interfaces définies par une spécification qui peuvent être enfichés dans les applications qui respectent ces spécifications Richard Grin Présentation Java EE page 13 Intérêt des composants Développement plus rapide, plus fiable Maintenance facilitée Pas besoin de compétences pointues dans le domaine métier d un composant acquis Industrie du composant logiciel? Pas encore Richard Grin Présentation Java EE page 14 Exemples Composant «métier» pour gérer la paie des employés Composant JSF qui affiche une carte «Google Map» dans l interface utilisateur Web Richard Grin Présentation Java EE page 15 Serveur d application Logiciel qui sert de structure d accueil pour les applications ; il leur fournit des services non fonctionnels Les applications Java EE ne peuvent fonctionner que si elles sont intégrées avec un serveur d application qui suit les spécifications Java EE GlassFish 4 est l implémentation de référence de Java EE 7 Plusieurs autres serveurs d application Java EE (Payara, WildFly, ) Richard Grin Présentation Java EE page 16 Containers Chaque type de composant Java EE est géré par un container qui fait partie du serveur d application : pour JSF, EJB, CDI, etc. Un container intercepte les appels aux composants pour ajouter des services non fonctionnels : transactions, gestion de la concurrence, cycle de vie des composants, injection de dépendance, Le développeur est ainsi libéré d une grande charge de travail! Exemple d interception L appel d une méthode d un EJB est intercepté par le container EJB qui démarre une nouvelle transaction, juste avant de donner la main à la méthode lance un commit de la transaction à la fin de l exécution de la méthode Richard Grin Présentation Java EE page 17 Richard Grin Présentation Java EE page 18 3

Configuration d une application Pour s adapter à la plateforme de déploiement (politique de sécurité, bases de données installées, ) faire un choix entre plusieurs possibilités (persistance des attributs d un objet, gestion des transactions, ) Java EE suit la formule «convention plutôt que configuration» : pas besoin de configurer les pratiques les plus courantes ; seules les pratiques inhabituelles doivent être configurées Configuration par fichiers XML ou annotations Format de distribution d une application Java EE Richard Grin Présentation Java EE page 19 Richard Grin Présentation Java EE page 20 Fichier d archive Une application Java EE est distribuée dans un fichier d archive, de type fichier jar Un fichier d archive peut contenir des classes Java (simples classes, composants) des ressources utilisées par le code Java (images, son, fichiers pour internationalisation, ) des fichiers XML qui décrivent l application ou la façon de la déployer d autres fichiers d archive Richard Grin Présentation Java EE page 21 Fichier descripteur de déploiement Informe le serveur d application sur la manière de déployer une application Par exemple pour intégrer l application dans le système de sécurité utilisé par le serveur Java EE a des fichiers descripteurs standards ; web.xml pour les applications Web Un serveur d application peut y ajouter ses propres fichiers pour des configurations non standardisées (clustering, pools de connexions, ) ; par exemple glassfish-web.xml pour GlassFish Richard Grin Présentation Java EE page 22 Annotations et fichiers descripteurs XML De nombreuses annotations permettent de configurer une application directement dans les classes Java Le contenu des fichiers XML est ainsi allégé S il y a conflit sur une indication, c est le fichier XML qui l emporte Pourquoi? Types de fichiers d archive Jar (Java ARchive) : contient les EJB, les classes Java ordinaires et les ressources associées War (Web ARchive) : pour les modules liés au Web ; contient les servlets, fichiers HTML, JSF, EJB, et les ressources associées Ear (Entreprise ARchive) : contient des modules jar ou war Richard Grin Présentation Java EE page 23 Richard Grin Présentation Java EE page 24 4

Structure JAR pour EJB Structure WAR Protégé des clients Web classes directement sous la racine Richard Grin Présentation Java EE page 25 Richard Grin Présentation Java EE page 26 Structure EAR Profiles Richard Grin Présentation Java EE page 27 Richard Grin Présentation Java EE page 28 Profile Pour permettre des serveurs d application allégés, Java EE définit des profiles qui n utilisent pas toutes les technologies de la norme Le profile Web inclut les technologies pour écrire une application Web : servlets, JSF, CDI, EJB Lite, JPA, JTA, validation bean Une application qui se limite au profile Web peut être distribuée dans un seul fichier WAR EJB Lite Une partie de la spécification EJB : beans stateless, stateful et singleton (donc pas EJB message, MDB) interfaces locales (pas d interfaces distantes) Richard Grin Présentation Java EE page 29 Richard Grin Présentation Java EE page 30 5

Généralités JNDI Java Naming and Directory Interface Les composants ont besoin d accéder à d autres composants ou à des ressources (EJB, source de données JDBC, ressource javamail, ) JNDI, API Java pour utiliser des annuaires pour donner des noms à des objets, des services ou des ressources les récupérer en donnant leur nom Exemples de noms : java:global/drh/drh-ejb/employemanager java:app/jdbc/employes Richard Grin Présentation Java EE page 31 Richard Grin Présentation Java EE page 32 Noms JNDI des EJB Noms JNDI des EJB standardisés java:global/app1/ejb1/bean1 application module (fichier ejb1.jar) java:app/ejb1/bean1 java:module/bean1 nom de l EJB à l intérieur d un module Utilisation de JNDI En interne par le serveur d application Le développeur utilisera le plus souvent l injection de dépendance qui est plus simple à utiliser L injection de dépendance n est pas toujours possible et il faut alors utiliser JNDI ; par exemple pour l écriture d un validateur JSF Richard Grin Présentation Java EE page 33 Richard Grin Présentation Java EE page 34 Code pour récupérer un EJB avec JNDI import javax.naming.initialcontext;... try { InitialContext ic = new InitialContext(); MonEJB monejb = (MonEJB) ic.lookup("java:global/app/mod/monejb");... } catch (NamingException e) {... } Injecter un EJB Ajouter une variable d instance et l injecter : @EJB private MonEJB monejb; Et c est tout! C est le container qui va fournir l EJB au code Si c est possible, plus simple d injecter l EJB! Richard Grin Présentation Java EE page 35 Richard Grin Présentation Java EE page 36 6

Documentation Annexe Oracle : https://docs.oracle.com/javaee/7/index.html dont le tutoriel : https://docs.oracle.com/javaee/7/tutorial/index.html Changer les ports utilisés par GlassFish Richard Grin Présentation Java EE page 37 Richard Grin Présentation Java EE page 38 7