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

CORBA Discussion :

Comment accéder aux méthodes d'un objet à partir de son IOR


Sujet :

CORBA

  1. #1
    Nouveau membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Juin 2009
    Messages
    36
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Haute Vienne (Limousin)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2009
    Messages : 36
    Points : 30
    Points
    30
    Par défaut Comment accéder aux méthodes d'un objet à partir de son IOR
    Bonjour,

    Je code actuellement une application en Java en utilisant Corba,
    et j'aimerais accéder aux méthodes (voire variables) d'un objet
    enregistré dans mon annuaire (donc en passant par son IOR).

    J'ai déjà essayé pas mal de combinaisons, mais la difficulté réside dans le
    fait que je crée plusieurs objet d'une classe "SrvChat", mais seul le premier
    ("ChatManager") est enregistré dans l'annuaire, et il possède un vecteur qui gère la liste des autres instances.

    Je ne sais pas si j'ai été clair, mais voici le bout de code qui me samblait
    adéquat, et l'erreur (insipide !) qu'il me renvoit !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    test = (SrvChat) poa.reference_to_servant(MaConnexion.GetReference("ChatManager"));
    org.omg.PortableServer.POAPackage.WrongAdapter: IDL:omg.org/PortableServer/POA/WrongAdapter:1.0
    at com.sun.corba.se.impl.oa.poa.POAImpl.internalReferenceToId(Unknown Source)
    at com.sun.corba.se.impl.oa.poa.POAImpl.reference_to_servant(Unknown Source)


    Voilà, je ne suis ni débutant, ni expert, et je suis réceptif à toute solution !

  2. #2
    Membre averti
    Homme Profil pro
    Architecte technique
    Inscrit en
    Septembre 2006
    Messages
    219
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2006
    Messages : 219
    Points : 302
    Points
    302
    Par défaut
    Bonjour,

    Commençons par le commencement:
    Les deux classes implémentent-elles des interfaces définies en IDL (i.e. IDL compilé et les classes héritent du code Java généré pour le serveur. e.g. MyInterfacePOA) ?
    Si oui, peux-tu nous montrer cet IDL.

    test = (SrvChat) poa.reference_to_servant(MaConnexion.GetReference("ChatManager"));
    L'opération poa.reference_to_servant ne peut être appelée que dans le process qui implémente la référence (IOR) en question (donc forcément côté serveur), et avec une référence créée par le POA utilisé.
    L'erreur indique que ce n'est pas ce POA (WrongAdapter) qui a été utilisé pour créer l'IOR.

  3. #3
    Nouveau membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Juin 2009
    Messages
    36
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Haute Vienne (Limousin)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2009
    Messages : 36
    Points : 30
    Points
    30
    Par défaut
    Citation Envoyé par CorbAddict Voir le message
    Bonjour,

    Commençons par le commencement:
    Les deux classes implémentent-elles des interfaces définies en IDL (i.e. IDL compilé et les classes héritent du code Java généré pour le serveur. e.g. MyInterfacePOA) ?
    Si oui, peux-tu nous montrer cet IDL.


    L'opération poa.reference_to_servant ne peut être appelée que dans le process qui implémente la référence (IOR) en question (donc forcément côté serveur), et avec une référence créée par le POA utilisé.
    L'erreur indique que ce n'est pas ce POA (WrongAdapter) qui a été utilisé pour créer l'IOR.
    Bonjour,

    Seule la classe SrvChat implémente un interface défini en IDL.
    Et Srvchat joue le rôle de serveur ET de client ! Ce ne qui simplifie pas les choses ! (cela m'est imposé ! )
    Concernant l'opération poa.reference_to_servant, c'est bien ce que j'ai cru comprendre...
    J'aimerais juste accéder aux méthodes du 1er serveur/client (le ChatManager).
    Parce-que, quand j'en lance plusieurs (chat oblige !) je n'arrive pas à récupérer une référence sur le 1er !

  4. #4
    Nouveau membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Juin 2009
    Messages
    36
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Haute Vienne (Limousin)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2009
    Messages : 36
    Points : 30
    Points
    30
    Par défaut
    J'ai honte !

    Le problème est résolu !
    Merci à toi CorbAddict !

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

Discussions similaires

  1. impossible d'accéder aux méthodes de l'objet document
    Par Velatus dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 30/08/2010, 14h24
  2. Comment accéder aux méthodes d'un objet hors de la classe ?
    Par floating_inkpot dans le forum Windows Forms
    Réponses: 0
    Dernier message: 18/04/2010, 21h26
  3. Comment accéder aux propriétés d'un objet de la bibliothèque
    Par jpboogie dans le forum ActionScript 1 & ActionScript 2
    Réponses: 2
    Dernier message: 11/02/2009, 10h57
  4. [Smarty] Comment accéder aux propriétés d'un objet dans un objet ?
    Par Tanebisse dans le forum Bibliothèques et frameworks
    Réponses: 3
    Dernier message: 18/11/2008, 12h36
  5. Réponses: 4
    Dernier message: 11/04/2007, 14h26

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