IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Java EE Discussion :

[EJBContext] Interaction Client <-> EJB


Sujet :

Java EE

  1. #1
    En attente de confirmation mail

    Homme Profil pro
    Inscrit en
    Décembre 2003
    Messages
    219
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Décembre 2003
    Messages : 219
    Points : 108
    Points
    108
    Par défaut [EJBContext] Interaction Client <-> EJB
    Bonjour,
    Dans le souci de comprendre le principe d'instanciation d'un EJB par un client, il ressort que pour invoquer un EJB, le client fournit au conteneur les informations du contexte de l'EJB afin de lui permettre de retrouver la reférence du Home Object devant créer l'instance du bean (du moins pour ce qui concerne RMI-IIOP via JNDI).
    J'aimerai savoir:
    - Qu'est-ce qu'un EJBContext ?
    - Qu'est ce qu'il contient ?
    - Est-ce que c'est l'EJBContext qui précise au conteneur le manière avec laquelle le conteneur doit créer une instance de bean ? si oui comment, si non qui le fait (préciser comment le conteneur doit créer une instance du bean) ?

    Merci pour votre eclaircissement

  2. #2
    ego
    ego est déconnecté
    Rédacteur

    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Juillet 2004
    Messages
    1 883
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Architecte de système d'information
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2004
    Messages : 1 883
    Points : 3 510
    Points
    3 510
    Billets dans le blog
    2
    Par défaut
    regardes la définition de EJBContext dans la doc, cela n'a rien à voir avec ta description ! (http://java.sun.com/j2ee/sdk_1.3/tec...JBContext.html)

    L'EJBContext qui se décline en fonction du type d'EJB est là pour stocker au niveau de l'EJB instancié par le container, des informations sur le rôle qui a créé l'EJB, le contexte transactionel, les variables d'environnement éventuellements définies dans l'ejb-jar et autres infos.

    Rien à voir avec des informations permettant de retrouver la Home.

  3. #3
    En attente de confirmation mail

    Homme Profil pro
    Inscrit en
    Décembre 2003
    Messages
    219
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Décembre 2003
    Messages : 219
    Points : 108
    Points
    108
    Par défaut
    Slut,
    Oui, j'ai d'abord lu ça. Merci pour ta réponse.
    Si je comprend bien, l'EJBContext permet de stocker ces informations (parmi lesquelles le rôle qui a crée l'instance EJB) au niveau de l'instance EJB ==> l'EJBContext intervient donc après la création de l'instance d'EJB.
    - Qui fournit donc le rôle qui crée l'instance EJB (le client, le conteneur, l'EJB lui même, ...) ?
    J'aimerai surtout comprendre quelque chose: le principe de création d'une instance d'EJB. Théoriquement je le comprend, mais j'aimerai savoir le rôle de chaque élément intervenant dans le processus de création d'une instance d'EJB. En fait, c'est que j'ai lu le code client java d'un EJB et je ne parvient pas à l'étudier. c'est le suivant (tiré du livre "Mastering Enterprise JavaBeans" de ED Roman, 3rd Edition):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
     
    package examples;
    import javax.naming.Context;
    import javax.naming.InitialContext;
    import java.util.Properties;
     
    public class HelloClient &#123;
    public static void main&#40;String&#91;&#93; args&#41; throws Exception &#123;
     
    Properties props = System.getProperties&#40;&#41;;
     
    Context ctx = new InitialContext&#40;props&#41;;
     
    Object obj = ctx.lookup&#40;"HelloHome"&#41;;
     
    HelloHome home = &#40;HelloHome&#41; javax.rmi.PortableRemoteObject.narrow&#40;obj, HelloHome.class&#41;;
     
    Hello hello = home.create&#40;&#41;;
     
    System.out.println&#40;hello.hello&#40;&#41;&#41;;
     
    hello.remove&#40;&#41;;
    &#125;
    &#125;
    Quelqu'un peut-il m'aider à comprendre qui (l'élément) est à l'origine des informations qui guide le conteneur à créer une instance d'EJB ?

    merci d'avance

  4. #4
    ego
    ego est déconnecté
    Rédacteur

    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Juillet 2004
    Messages
    1 883
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Architecte de système d'information
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2004
    Messages : 1 883
    Points : 3 510
    Points
    3 510
    Billets dans le blog
    2
    Par défaut
    Le InitialContext contient un ensemble de couples (clé,valeur) permettant au client de se connecter à l'annuaire JNDI (avec notemment la possibilité de donner le "principal" = Context.SECURITY_PRINCIPAL et le mot de passe associé = credential = Context.SECURITY_CREDENTIALS).
    C'est dans cet annuaire que sont référencées les "Home" de tes EJBs.

    Ensuite, le lookup permet de récupérer ta Home dans l'annuaire. On fait un "cast" (ligne avec le narrow) spécial car tu ne récupère pas vraiment un HelloHome mais un proxy sur un HelloHome.

    Enfin, tu demandes à la Home de créer une instance de ton EJB.

    Côté serveur, cette création peut simplement aller chercher une instance dans le pool d'EJBs s'il y a des instances non utilisées ou bien créer une instance nouvelle car il n'y a plus d'instance libre dans le pool. Ce système de pool est faite pour accélérer les créations d'EJB.

  5. #5
    En attente de confirmation mail

    Homme Profil pro
    Inscrit en
    Décembre 2003
    Messages
    219
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Décembre 2003
    Messages : 219
    Points : 108
    Points
    108
    Par défaut
    Merci encore ego de me faire comprendre au fur et à mesure le principe de crétaion d'instances d'EJB.
    Tu dit:
    Le InitialContext contient un ensemble de couples (clé,valeur) permettant au client de se connecter à l'annuaire JNDI
    ma question c'est: qui fournit cela (couples clé-valeur) au client ?
    par exemple avec :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    Properties props = System.getProperties&#40;&#41;; 
    Context ctx = new InitialContext&#40;props&#41;;
    je ne vois pas clairement comment avec ces deux lignes de code le client obtient le couple (clé,valeur) lui permettant de se connecter à l'annuaire.
    Tu dis aussi:
    C'est dans cet annuaire que sont référencées les "Home" de tes EJBs
    J'aimerai savoir comment se passe l'enregistrement des "Home" dans l'annuaire (je crois bien par le conteneur).

    Une fois de plus merci.

  6. #6
    ego
    ego est déconnecté
    Rédacteur

    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Juillet 2004
    Messages
    1 883
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Architecte de système d'information
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2004
    Messages : 1 883
    Points : 3 510
    Points
    3 510
    Billets dans le blog
    2
    Par défaut
    Si tu ne passe rien à InitialContext, ce sont les valeurs par défaut qui sont utilisées. Ces valeurs sont prises dans le .jar de ton serveur d'appli que tu dois référencer dans le classpath de ton client. Cela suppose que tu as fait une installation par défaut de ton serveur.
    Pour bien comprendre, regardes les exemples fournis avec ton serveur d'appli !
    Si tu n'utilises pas les données par défaut, c'est bien au client de les fournir. Il faut pour cela que tu saches évidemment les protocoles et ports utilisés par ton serveur aussi que les "JNDIFactory" disponibles.

    Pour l'enregistrement de tes EJBs dans l'annuaire, c'est le serveur qui s'en charge quand il analyse l'ejb-jar que tu as déployé.

    Eh, il te faut peut être suivre un cours sur J2EE ?
    C'est suffisamment compliqué comme cela pour ne pas obliger les gens à faire du J2EE sans formation.

  7. #7
    En attente de confirmation mail

    Homme Profil pro
    Inscrit en
    Décembre 2003
    Messages
    219
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Décembre 2003
    Messages : 219
    Points : 108
    Points
    108
    Par défaut
    Merci ego

    C'est compliqué juste parceque je veux être trop fin dans la comprhension
    et même en formation J2EE, le même problème se posera.
    Je ne crois pas que j'ai besoin de formation!

    merci pour tout
    Bon je vais en formation perso et je reviens s'il ya Pb.

    Tout en espérant que tu sera dispo pour m'accompagner, merci

Discussions similaires

  1. interaction client perl, servlet java
    Par psylox dans le forum Langage
    Réponses: 1
    Dernier message: 17/02/2009, 13h29
  2. [DDE] Interactions client-serveur
    Par TheGzD dans le forum Visual C++
    Réponses: 0
    Dernier message: 15/01/2009, 14h52
  3. [EJB] communication client swing/serveur ejb
    Par afrikha dans le forum Java EE
    Réponses: 10
    Dernier message: 24/06/2008, 15h45
  4. Execution d'un client riche pour EJB
    Par pedouille dans le forum Wildfly/JBoss
    Réponses: 1
    Dernier message: 04/11/2006, 19h30
  5. [EJB] [JNDI] Application cliente invoquant des EJB distants
    Par nana1 dans le forum Java EE
    Réponses: 18
    Dernier message: 25/10/2005, 11h08

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo