La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

Stéphane Frenot - Département Télécommunication - SID - II - EjbServ 227 EJB Session.

Présentations similaires


Présentation au sujet: "Stéphane Frenot - Département Télécommunication - SID - II - EjbServ 227 EJB Session."— Transcription de la présentation:

1 Stéphane Frenot - Département Télécommunication - SID - stephane.frenot@insa-lyon.fr II - EjbServ 227 EJB Session

2 Stéphane Frenot - Département Télécommunication - SID - stephane.frenot@insa-lyon.fr II - EjbServ 228 Diagramme des classes des EJB Remote EJBHomeEJBObject EJBMetaData remove getEJBMetaData getEJBHome getHandle getPrimaryKey remove isIdentical getEJBHome getHomeInterfaceClass getPrimaryKeyClass getRemoteInterfaceClass isSession EnterpriseBean EntityBeanSessionBean ejbActivate ejbLoad ejbPassivate ejbRemove ejbStore setEntityContext unsetEntityContext ejbActivate ejbPassivate ejbRemove setSessionContext Serializable

3 Stéphane Frenot - Département Télécommunication - SID - stephane.frenot@insa-lyon.fr II - EjbServ 229 Cycle de développement d'un EJB 1) Définir l'interface « remote » de l'EJB qui étend javax.ejb.EJBObject 2) Ecrire l'interface « home » pour l'EJB qui étend javax.ejb.EJBHome 3) Ecrire la classe d'implantation du bean qui implante javax.ejb.SessionBean 4) Compiler lEJB avec ses classes de support 5) Déployer l'EJB

4 Stéphane Frenot - Département Télécommunication - SID - stephane.frenot@insa-lyon.fr II - EjbServ 230 Conventions de nommage

5 Stéphane Frenot - Département Télécommunication - SID - stephane.frenot@insa-lyon.fr II - EjbServ 231 Bon, un exemple ! Suite de fibonacci F[0]=0 F[1]=1 F[N]=F[N-1]+F[N-2] 0, 1, 1, 2, 3, 5, 8, 13, 21, 34...

6 Stéphane Frenot - Département Télécommunication - SID - stephane.frenot@insa-lyon.fr II - EjbServ 232 Initialisation Type d'EJB ? Nom des classe EJB ? Methodes métier ?

7 Stéphane Frenot - Département Télécommunication - SID - stephane.frenot@insa-lyon.fr II - EjbServ 233 1 : Ecrire l'Interface Remote Une interface « remote » doit : –étendre javax.ejb.EJBObject –étendre javax.ejb.Remote –être déclarée public –avoir toutes ses méthodes publiques –avoir ses méthodes conformes aux règles RMI Règles RMI 1) La méthode doit pouvoir lever java.rmi.RemoteException 2) Tous les paramètres d'entrée sont sérialisables 3) Tous les paramètres de retour sont sérialisables 4) Toutes les exceptions sont sérialisables

8 Stéphane Frenot - Département Télécommunication - SID - stephane.frenot@insa-lyon.fr II - EjbServ 234 Méthodes de l'interface Remote Les méthodes de l'interface Remote peuvent également lever des exceptions métiers Syntaxe de définition des méthodes de linterface Remote public nomMethode( ) throws RemoteException, [ ] Exemple de méthodes remote public void methodeX() throws RemoteException; public int methodeY(String Y) throws RemoteException; public Toto methodeZ(Vector v, Titi y) throws RemoteException, AruithmeticException

9 Stéphane Frenot - Département Télécommunication - SID - stephane.frenot@insa-lyon.fr II - EjbServ 235 Interface Remote Interface Remote de l'EJB fibonacci package exemple.fibonacci; public interface Fibonacci extends javax.ejb.EJBObject { public int getFibonacciNumber(int n) throws java.rmi.RemoteException; }

10 Stéphane Frenot - Département Télécommunication - SID - stephane.frenot@insa-lyon.fr II - EjbServ 236 2 Ecrire l'interface Home L interface Home doit : –étendre javax.ejb.EJBHome –être déclarée public –avoir toutes ses méthodes public –avoir toutes ses méthodes suivre les règles RMI –fournir une ou plusieurs méthodes create()

11 Stéphane Frenot - Département Télécommunication - SID - stephane.frenot@insa-lyon.fr II - EjbServ 237 Ecrire les méthodes create Les méthodes create() sont utilisées par les clients pour initialiser les instances Règles pour l'écriture de méthodes create() 1) la méthode doit lever java.rmi.RemoteException 2) la méthode doit lever javax.ejb.CreateException 3) le type de retour est l'interface Remote de l'EJB 4) la méthode suit les règles RMI 5) chaque méthode create possède une signature unique Syntaxe de la méthode Create () public create(...) throws RemoteException, CreateException

12 Stéphane Frenot - Département Télécommunication - SID - stephane.frenot@insa-lyon.fr II - EjbServ 238 Ecriture de l'interface Home Interface Home de l'EJB fibonacci package exemple.fibonacci; import java.rmi.*; import javax.ejb.*; public interface FibonacciHome extends EJBHome { public Fibonacci create() throws CreateException, RemoteException; }

13 Stéphane Frenot - Département Télécommunication - SID - stephane.frenot@insa-lyon.fr II - EjbServ 239 3 : Ecrire la classe du Bean Règles d'écriture de la classe de l'EJB 1)La classe doit implanter l'interface javax.ejb.SessionBean 2)Fournir une implantation de toutes les méthodes métier de l'interface Remote 3)NE PAS IMPLANTER 4)Pour chaque méthode create (de l'interface home) définir une méthode de signature équivalente ejbCreate() 5)Faire la classe public Règles d écriture des méthode ejbCreate() 1)Chaque méthode create doit avoir une ejbCreate 2)ejbCreate retourne void 3)ejbCreate ne peut pas être ni static ni final 4)ejbCreate doit être public 5)ejbCreate NE LEVE PAS java.rmi.RemoteException 6)ejbCreate peut lever une javax.ejb.CreateException

14 Stéphane Frenot - Département Télécommunication - SID - stephane.frenot@insa-lyon.fr II - EjbServ 240 Linterface SessionBean La classe EJB doit implanter toutes les méthodes de l'interface SessionBean Méthodes de l'interface SessionBean public void ejbPassivate(); public void ejbActivate(); public void ejbRemove(); public void setSessionContext(SessionContext ctx);

15 Stéphane Frenot - Département Télécommunication - SID - stephane.frenot@insa-lyon.fr II - EjbServ 241 Diagramme d'appel

16 Stéphane Frenot - Département Télécommunication - SID - stephane.frenot@insa-lyon.fr II - EjbServ 242 Activation/Passivation

17 Stéphane Frenot - Département Télécommunication - SID - stephane.frenot@insa-lyon.fr II - EjbServ 243 Destruction d'EJB

18 Stéphane Frenot - Département Télécommunication - SID - stephane.frenot@insa-lyon.fr II - EjbServ 244 Classe type d'un EJB Session Un format de classe d EJB Session : public class MonBean implements SessionBean private SessionContext context; public | protected | private variableStateful;... public void ejbPassivate(){...} public void ejbActivate(){...} public void ejbRemove(){...} public void setSessionContext(SessionContext ctx){ this.context=ctx; } public void ejbCreate(...)[throws CreateException}]{...} public (...) [throws ExceptionMetier{...}

19 Stéphane Frenot - Département Télécommunication - SID - stephane.frenot@insa-lyon.fr II - EjbServ 245 La classe La classe Fibonacci package exemple.fibonacci; import java.rmi.*; import javax.ejb.*; public class FibonacciBean implements SessionBean { public void ejbPassivate(){} public void ejbActivate(){} public void ejbRemove(){} public void setSessionContext(SessionContext ctx){} public void ejbCreate() { System.out.println("Cet EJB Fibonacci est créé"; }...

20 Stéphane Frenot - Département Télécommunication - SID - stephane.frenot@insa-lyon.fr II - EjbServ 246 La classe public int getFibonacciNumber(int n){... }


Télécharger ppt "Stéphane Frenot - Département Télécommunication - SID - II - EjbServ 227 EJB Session."

Présentations similaires


Annonces Google