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 définir en idl un List<News> ?


Sujet :

CORBA

  1. #1
    Membre régulier
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2007
    Messages
    165
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2007
    Messages : 165
    Points : 119
    Points
    119
    Par défaut Comment définir en idl un List<News> ?
    Bonjour,

    Comment définir un List<News> en idl, j'ai essayé avec :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    typedef sequence<News> ListeDeNews;
    ça ne marche pas :

    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
    25
    26
    27
    28
    29
    30
    31
    OpenORB  IDL To Java Compiler / (c) 2002 The Community OpenORB
    [..]
    <idl_speficication>
    <idl_definition> : 39
    <idl_definition> : 49
    <block_symbole>
    <block_symbole>
    <block_symbole>
    <idl_definition> : 49
    <block_symbole>
    <block_symbole>
    <block_symbole>
    <block_symbole>
    <block_symbole>
    <idl_definition> : 52
    <idl_definition> : 49
    <block_symbole>
    <block_symbole>
    <block_symbole>
    <block_symbole>
    <block_symbole>
    <block_symbole>
    <block_symbole>
    <block_symbole>
    <block_symbole>
    <block_symbole>
    <block_symbole>
    <block_symbole>
    <idl_definition> : 37
    Now translate to Java...
    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
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    module Service{
    
    	struct Humeur{
    		 string humeur;
    		 long idClient;
    	};
    
    	struct News{
    		 string texte;
    		 string dateAjout;
    		 string titre;
    		 long idClient;
    	};
    
    	typedef sequence<News> ListeDeNews;
    
    	struct Client{ 
    
    		 string login;
    	     string password;
    	     string ip;
    	     string joinGroup;
    	     string nom;
    	     string prenom;
    	     string date_de_naissance;
    	     string langue;
    		 long idClient;
    		 Humeur humeur;
    		 ListeDeNews listeNews;
    	};	
     
    	interface Facebook{
    		 Client infoClient(in string ipClient);
    		 Humeur humeurClient(in string ipClient);
    		 ListeDeNews listeNewsClient(in string ipClient);
    	};
    };
    Que faire s'il vous plait ?

    Merci d'avance.

  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,

    Comment définir un List<News> en idl, j'ai essayé avec :
    typedef sequence<News> ListeDeNews;
    Oui, c'est la bonne manière de faire. Ca devrait marcher !

    ça ne marche pas :
    ...
    Le log d'OpenORB n'est pas vraiment explicite !
    Où est le message d'erreur là dedans ? Es-tu sûr que l'erreur vient du "typedef sequence" ?

    Avec JacORB, les seuls erreurs dans ton IDL sont les 2 déclarations suivantes:
    • string humeur
    • Humeur humeur

    En effet, le langage IDL ne distingue pas les minuscules des majuscules. "humeur" ne peut donc pas être utilisé comme identifiant car "Humeur" est déjà définit comme un type.

  3. #3
    Membre régulier
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2007
    Messages
    165
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2007
    Messages : 165
    Points : 119
    Points
    119
    Par défaut
    Bonjour,

    Merci pour votre réponse.

    J'ai modifié humeur par contenuHumeur. Pour List<News> j'obtiens un News[] (statique) et non un List<News> (dynamique).

    Y a-t-il vraiment aucun moyen d'obtenir un tableau dynamique Vector ou Hashtable ou autre grâce au IDL ?

    Merci.
    Cordialement.

  4. #4
    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,

    Y a-t-il vraiment aucun moyen d'obtenir un tableau dynamique Vector ou Hashtable ou autre grâce au IDL ?
    Hélas non! Le mapping standard IDL vers Java transforme les séquences en tableaux statiques
    Je suis bien d'accord avec toi que c'est vraiment dommage, mais c'est comme ça !

  5. #5
    Membre régulier
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2007
    Messages
    165
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2007
    Messages : 165
    Points : 119
    Points
    119
    Par défaut
    Bonjour,

    Merci pour vos réponses. Hélas Java ne veut pas reconnaitre sequence<News>, dès que le client essayes d'avoir cette information, j'ai une erreur du type :

    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
    Exception in thread "Thread-3" org.omg.CORBA.UNKNOWN: Server Exception: Unregistered vendor exception #0  vmcid: 0x0  minor code: 0  completed: Yes
    	at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    	at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
    	at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
    	at java.lang.reflect.Constructor.newInstance(Unknown Source)
    	at org.openorb.CORBA.SystemExceptionHelper.create(Unknown Source)
    	at org.openorb.iiop.IIOPClientRequest.wait_for_response(Unknown Source)
    	at org.openorb.CORBA.Delegate$RequestState.waitForResponse(Unknown Source)
    	at org.openorb.CORBA.Delegate.invoke(Unknown Source)
    	at org.omg.CORBA.portable.ObjectImpl._invoke(Unknown Source)
    	at Service._FacebookStub.listeNewsClient(_FacebookStub.java:137)
    	at ups.m1.facebook.client.PageFacebook.listeDesConnectes(PageFacebook.java:146)
    	at ups.m1.facebook.client.corba.ClientCORBA.run(ClientCORBA.java:92)
    	at java.lang.Thread.run(Unknown Source)
    Que faire s'il vous plait ?

  6. #6
    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,

    Comme l'indique la stack, l'erreur est côté serveur dans l'implémentation de l'opération Facebook.listeNewsClient().

    Est ce que la définition de cette opération est toujours celle de votre 1er message ? :
    interface Facebook{
    // ...
    ListeDeNews listeNewsClient(in string ipClient);
    };
    Si oui, 3 problèmes possibles:
    1. Le code de cette opération lève une exception non-CORBA ou non prévue par l'IDL.
    2. Le code retourne null à la place d'un tableau de News (null n'est pas un retour valide pour CORBA)
    3. Le tableau de News retourné a une taille > 0 mais un de ses éléments est null (le tableau doit avoir tout ses éléments correctement initialisés pour pouvoir être envoyé par CORBA).

Discussions similaires

  1. liste alv comment définir longueur de colonnes
    Par kitty2006 dans le forum SAP
    Réponses: 5
    Dernier message: 02/11/2010, 16h03
  2. [DOM] Selected ! Comment définir un choix pour une liste déroulante
    Par tavarlindar dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 29/05/2008, 12h07
  3. Réponses: 8
    Dernier message: 20/12/2004, 15h14
  4. Comment définir la durée du Hint ?
    Par philobedo dans le forum Composants VCL
    Réponses: 3
    Dernier message: 29/04/2004, 10h48
  5. Comment définir le type matrice ?
    Par charly dans le forum Langage
    Réponses: 7
    Dernier message: 15/06/2002, 21h01

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