1 / 20

EJB Session

EJB Session. Diagramme des classes des EJB. Remote. Serializable. EJBHome. EJBObject. remove remove getEJBMetaData. getEJBHome getHandle getPrimaryKey remove isIdentical. EnterpriseBean. EntityBean. SessionBean. EJBMetaData. ejbActivate ejbLoad ejbPassivate ejbRemove ejbStore

gittel
Download Presentation

EJB Session

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


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

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

  3. 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 l’EJB avec ses classes de support 5) Déployer l'EJB Stéphane Frenot - Département Télécommunication - SID - stephane.frenot@insa-lyon.fr

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

  5. 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 ... Stéphane Frenot - Département Télécommunication - SID - stephane.frenot@insa-lyon.fr

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

  7. 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 Stéphane Frenot - Département Télécommunication - SID - stephane.frenot@insa-lyon.fr

  8. 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 l’interface Remote public <TypeDeRetour> nomMethode(<TypeDEntree>) throws RemoteException, [<ExceptionMetier>] 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 Stéphane Frenot - Département Télécommunication - SID - stephane.frenot@insa-lyon.fr

  9. 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; } Stéphane Frenot - Département Télécommunication - SID - stephane.frenot@insa-lyon.fr

  10. 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() Stéphane Frenot - Département Télécommunication - SID - stephane.frenot@insa-lyon.fr

  11. 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 <RemoteIF> create(...) throws RemoteException, CreateException Stéphane Frenot - Département Télécommunication - SID - stephane.frenot@insa-lyon.fr

  12. 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; } Stéphane Frenot - Département Télécommunication - SID - stephane.frenot@insa-lyon.fr

  13. 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 <RemoteIF> 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 Stéphane Frenot - Département Télécommunication - SID - stephane.frenot@insa-lyon.fr

  14. L’interface 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); Stéphane Frenot - Département Télécommunication - SID - stephane.frenot@insa-lyon.fr

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

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

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

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

  19. 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éé"; } ... Stéphane Frenot - Département Télécommunication - SID - stephane.frenot@insa-lyon.fr

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

More Related