TP1 - Entreprise Java Beans



Documents pareils
EXA1415 : Annotations

Création d une application JEE

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

IFT287 Exploitation de base de données relationnelles et orientées objet. Laboratoire Mon premier programme Java en Eclipse

Bases Java - Eclipse / Netbeans

Création d un service web avec NetBeans 5.5 et SJAS 9

RMI. Remote Method Invocation: permet d'invoquer des méthodes d'objets distants.

TP1 : Initiation à Java et Eclipse

Compte Rendu d intégration d application

Une introduction à la technologie EJB (2/3)

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

Cours 1: Java et les objets

Tutoriel d installation de Hibernate avec Eclipse

TP1 : Initiation à Java et Eclipse

Introduction à Eclipse

Installation et prise en main

Remote Method Invocation (RMI)

Java Licence professionnelle CISII,

Page 1 sur 5 TP3. Thèmes du TP : l la classe Object. l Vector<T> l tutorial Interfaces. l Stack<T>

Serveur d'application Client HTML/JS. Apache Thrift Bootcamp

TD/TP 1 Introduction au SDK d Android

TP1. Outils Java Eléments de correction

Environnements de développement (intégrés)

La base de données XML exist. A. Belaïd

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

API04 Contribution. Apache Hadoop: Présentation et application dans le domaine des Data Warehouses. Introduction. Architecture

Java Naming and Directory Interface

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

Plan du cours. Historique du langage Nouveautés de Java 7

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

Eclipse atelier Java

Web Tier : déploiement de servlets

Traitement de données

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

Serveur d'archivage 2007 Installation et utilisation de la BD exist

JOnAS Day 5.1. Clustering

TD Objets distribués n 3 : Windows XP et Visual Studio.NET. Introduction à.net Remoting

Java pour le Web. Cours Java - F. Michel

Remote Method Invocation Les classes implémentant Serializable

Projet de programmation (IK3) : TP n 1 Correction

Applet pour visualiser les variables «automate» notifiées

Installer GlassFish v3

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.

Corrigé des exercices sur les références

Programmation Réseau. Sécurité Java. UFR Informatique jeudi 4 avril 13

Programmation par les Objets en Java

Introduction à Java. Matthieu Herrb CNRS-LAAS. Mars

Auto-évaluation Programmation en Java

Dis papa, c est quoi un bus logiciel réparti?

D E S C R I P T I O N D E S É L É M E N T S C L E F S D ' U I M A

Synchro et Threads Java TM

Calcul Parallèle. Cours 5 - JAVA RMI

Initiation à JAVA et à la programmation objet.

Export et Import de modèles ICAR sous Trnsys 17

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

Programmer en JAVA. par Tama

Warren PAULUS. Android SDK et Android x86

Tp 1 correction. Structures de données (IF2)

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

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)

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

Construire des plug-ins pour SAS Management Console SAS 9.1

Installer et configurer Oracle Forms 11gR2 Windows 7 64 bits

2 Chapitre 1 Introduction

Rapport de projet de fin d études

Introduction à Java. Philippe Genoud.

Tutorial pour une application simple

TP Programmation Java / JDBC / Oracle

TP SIN Programmation sur androïde Support : eclipse

Java au cœur de la base de données Oracle

Mise en œuvre des serveurs d application

Cours intensif Java. 1er cours: de C à Java. Enrica DUCHI LIAFA, Paris 7. Septembre Enrica.Duchi@liafa.jussieu.fr

Java RMI. Arnaud Labourel Courriel: Université de Provence. 8 mars 2011

Remote Method Invocation en Java (RMI)

Cedric Dumoulin (C) The Java EE 7 Tutorial

Java Licence Professionnelle CISII,

Java Licence Professionnelle Cours 7 : Classes et méthodes abstraites

Langage Java. Classe de première SI

Utiliser Java sans BlueJ

JOnAS Day 5.1. Outils de développements

RMI le langage Java XII-1 JMF

Programmation Par Objets

Exceptions. 1 Entrées/sorties. Objectif. Manipuler les exceptions ;

Programmation Orientée Objet

Tutoriel: Création d'un Web service en C++ avec WebContentC++Framework

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

JavaServer Pages (JSP)

TP Composants Java ME - Java EE. Le serveur GereCompteBancaireServlet

Développement Logiciel

7 Développement d une application de MapReduce

Groupe Eyrolles, 2005, ISBN :

- TP Programmation Android - NFA024 Conservatoire National des Arts et Métiers

INITIATION AU LANGAGE JAVA

BIRT (Business Intelligence and Reporting Tools)

Gestion distribuée (par sockets) de banque en Java

Package Java.util Classe générique

SYNC FRAMEWORK AVEC SQLITE POUR APPLICATIONS WINDOWS STORE (WINRT) ET WINDOWS PHONE 8

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

Programmation Objet Java Correction

Conception de serveurs d'applications ouverts

Transcription:

TP1 - Entreprise Java Beans Réseaux Middlewares - Jules Chevalier 1 Configuration Minimale Pour ce TP, vous aurez besoin de outils suivants : Un JDK installé (le JRE est insuffisant) Un IDE édition Java EE (Eclipse Java EE sera utilisé pour les explications) Un serveur d application, ici Glassfish.1 2 Mise en place 2.1 Installer Glassfish Tout d abord, les EJB ont besoin d un serveur d application pour être déployés. L un des plus utilisé est Glassfish. Les instructions seront données pour Glassfish, vous pouvez utiliser un serveur différent, à condition d être autonome en ce qui concerne son utilisation. De même, nous verrons comment développer et déployer ces EJB dans Eclipse. Vous pouvez utiliser un autre IDE aux mêmes conditions. Pour installer un Glassfish dans Eclipse : Installer le plugin Glassfish Help -> Eclipse Marketplace Rechercher glassfish Installer Glassfish Java EE Application Server Plugin for Eclipse Installer Glassfish Windows -> Preferences Server -> Runtime Environnement Add Glassfish.1 Choisir le dossier où installer glassfish Install Server Dans l onglet Servers (en bas), créer un nouveau serveur Glassfish.1 2.2 Créer le projet EJB Vous devez créer un projet EJB. Dans Eclipse, dans File -> New -> Other, choisissez EJB Project. Dans les propriétés du projet, ouvrez Java Build Path, onglet Librairies. Si JRE System Library ne correspond pas à un JDK, Edit permet de changer la version de Java utilisée dans le projet. Si le JDK n apparaît pas dans Alternate JRE, ajoutez le dans Installed JREs. Enfin, certaines librairies sont nécessaires à l exécution du projet. Toujours dans Java Build Path, Add External JARs permet d ajouter des librairies. Ajoutez appserv-rt.jar et javaee.jar, présents dans le dossier d installation de glassfish glassfish/glassfish/lib. Créez enfin deux packages, un package ejbs qui contiendra les EJB et leurs interfaces, et un package client qui contiendra les applications clientes. 1

Écrire un EJB.1 Stateless La première partie consiste à développer des EJB mettant à disposition les même méthodes que le précédent TP, à savoir hello() et echo(string s). Tout d abord, il faut écrire l interface distante. C est une interface simple annotée @Remote. Par exemple : 1 SimpleRemote.java 2 import javax.ejb.remote; 4 @Remote 5 public interface SimpleRemote { 6 public String hello(); 7 public String echo(string s); 8 } Ensuite, il faut implémenter le Bean en lui-même. Il est annoté Stateless, et implémente l interface distante. Les paramètres de Stateless permettent de définir le nom de l EJB (name) et le nom sous lequel il est accessible à distance (mappedname). Par exemple : 2 SimpleBean.java 2 import javax.ejb.stateless; 4 @Stateless(name="SimpleEJB", mappedname="simplebean") 6 @Override 7 public String hello(){ 8 return "Bonjour"; 10 @Override 11 public String echo(string s){ 12 return "Echo : "+s; 1 } 14 } Pour déployer vos EJBs, vous pouvez lancer le projet sur le serveur (clic-droit -> Run as... -> Run on Server), ou manuellement en exportant le projet au format.jar dans le dossier glassfish/glassfish/domains/domain1/autodeploy. 2

Il ne manque plus que le client qui récupère et utilise l EJB. Pour cela, il récupère l EJB avec ctx.lookup("simpleremote"), puis utilise ses méthodes. Voici un exemple de client : Client.java 1 public static void main(string[] args) { 2 try { InitialContext ctx = new InitialContext(); 4 EchoRemote bean = (EchoRemote) ctx.lookup("simpleremote"); 5 System.out.println(bean.hello()); 6 System.out.println(bean.echo("Billy Bob")); 7 } catch (Exception e) { 8 e.printstacktrace(); 10 }

.2 Statefull Votre EJB doit maintenant être Stateful, c est-à-dire qu il conserve des données d un appel à l autre. Ajoutez une méthode login qui permet de sauvegarder le nom de l utilisateur dans une variable de l EJB. Maintenant, la méthode hello doit utiliser le nom de l utilisateur, s il s est déjà loggué. L interface doit elle aussi être mise à jour. N oubliez pas de changer l annotation du Bean en Stateful 4 SimpleRemote.java 2 import javax.ejb.remote; 4 @Remote 5 public interface SimpleRemote { 6 public void login(string name); 7 public String hello(); 8 public String echo(string s); 5 SimpleBean.java 2 import javax.ejb.stateful; 4 @Stateful(name="SimpleEJB", mappedname="simplebean") 6 String name=null; 7 @Override 8 public void login(string name){ 9 this.name=name; 10 } 11 @Override 12 public String hello(){ 1 if(name==null) 14 return "Bonjour"; 15 return "Bonjour "+name; 16 } 17 @Override 18 public String echo(string s){ 19 return "Echo : "+s; 20 } 21 }. Aller plus loin Les EJB ne s utilisent pas qu à distance. Pour utiliser un EJB dans une autre EJB, vous devez utiliser L injection de dépendance. Un EJB n est jamais instancié directement par le développeur. C est le conteneur d EJB qui est chargé de gérer le cycle de vie des EJB. Pour utiliser un EJB localement, on le déclare comme une variable non initialisée, annotée @EJB. Lorsque la variable correspondant à l EJB sera utilisé, le conteneur se chargera de relier une instance à la variable. Vous devez donc créer un nouvel EJB avec une interface locale (annotée @Local), qui sera utilisée par le premier EJB. Par exemple, plutôt que de dire bonjour toujours de la même façon, SimpleBean peut demander à un autre EJB de lui donner aléatoirement un "bonjour". Vous devez donc avoir une interface RandomLocal, et un bean RandomBean. 4

6 RandomLocal.java 2 import javax.ejb.local; 4 @Local 5 public interface RandomRemote { 6 public String randomhello(); 7 } 7 SimpleBean.java 2 import javax.ejb.stateless; 4 @Stateless 5 public class RandomBean implements RandomLocal { 6 @Override 7 public String randomhello() { 8 String[] hellos = {"Bonjour","Salut","Hello","Yo","Hey"}; 9 int r = (int)(math.random() (hellos.length)); 10 return hellos[r]; 11 } 12 } Pour l utiliser dans le premier EJB : 8 SimpleBean.java 2 import javax.ejb.stateful; 4 @Stateful(name="SimpleEJB", mappedname="simplebean") 6 String name=null; 7 @EJB 8 private RandomLocal rnd; 9 10 @Override 11 public void login(string name){ 12 this.name=name; 1 } 14 @Override 15 public String hello(){ 16 String hi = rnd.randomhello(); 17 if(name==null) 18 return hello; 19 return hi+" "+name; 20 } 21 @Override 22 public String echo(string s){ 2 return "Echo : "+s; 24 } 25 } 5