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 :

A quoi sert PortableRemoteObject.narrow() ? [RMI]


Sujet :

Java EE

  1. #1
    Membre averti
    Avatar de rozwel
    Inscrit en
    Mars 2002
    Messages
    324
    Détails du profil
    Informations forums :
    Inscription : Mars 2002
    Messages : 324
    Points : 334
    Points
    334
    Par défaut A quoi sert PortableRemoteObject.narrow() ?
    Bonjour à tous,

    Je suis en train de me former à J2EE avec un bon bouquin (y'a rien de tel ) et dans un exemple il y a un truc que je ne comprends pas.
    Voilà le code incriminé :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    agencyJNDI = "java:comp/env/ejb/Agency";
    InitialContext ic = new InitialContext();
    Object lookup = ic.lookup(agencyJNDI);
    AgencyHome home = (AgencyHome)PortableRemoteObject.narrow(lookup, AgencyHome.class);
    Agency agency = home.create();
    System.out.println("Welcome to: "+agency.getAgencyName());
    Ce code fait partie d'un client simple censé récupérer une référence vers un EJB Agency pour pouvoir l'utiliser.
    Alors pour tout ce qui est des appels JNDI c'est bon, je comprends. Par contre je ne vois pas du tout à quoi sert l'appel à narrow à la 4ème ligne. Je veux dire je sais qu'il y a une raison liée à RMI mais comme je n'ai pas utilisé ça assez souvent j'ai un peu de mal à avoir les idées claires dessus. Alors quelqu'un saurait-il m'expliquer pourquoi on ne fait pas tout simplement un truc du style :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    agencyJNDI = "java:comp/env/ejb/Agency";
    InitialContext ic = new InitialContext();
    Object lookup = ic.lookup(agencyJNDI);
    AgencyHome home = (AgencyHome)lookup;
    Agency agency = home.create();
    System.out.println("Welcome to: "+agency.getAgencyName());
    Merci d'avance pour vos réponses

    rozwel
    Sébastien ARBOGAST
    SCJP

  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
    Au niveau du client, tu récupères via JNDI un "proxy" générique sur un objet serveur. Pour récupérer le "vrai" proxy sur ton objet serveur et le "caster" dans la bonne Home, RMI propose la méthode narrow de PortableRemoteObject.

    C'est, pour faire simple, le moyen offert par RMI pour faire du "cast" d'objets distants récupérés par JNDI

  3. #3
    Membre averti
    Avatar de rozwel
    Inscrit en
    Mars 2002
    Messages
    324
    Détails du profil
    Informations forums :
    Inscription : Mars 2002
    Messages : 324
    Points : 334
    Points
    334
    Par défaut
    Merci beaucoup pour cette réponse très claire !
    Sébastien ARBOGAST
    SCJP

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. A quoi sert XML-Schema
    Par Community Management dans le forum Valider
    Réponses: 20
    Dernier message: 26/01/2009, 09h52
  2. à quoi sert le délestage?
    Par r0d dans le forum Mode d'emploi & aide aux nouveaux
    Réponses: 5
    Dernier message: 06/10/2004, 14h34
  3. a quoi sert le schema dans postgres ??
    Par champion dans le forum PostgreSQL
    Réponses: 6
    Dernier message: 13/09/2004, 10h25
  4. [info] A quoi sert ImageObserver ?
    Par FrigoAcide dans le forum AWT/Swing
    Réponses: 4
    Dernier message: 22/03/2004, 17h20

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