Publicité
+ Répondre à la discussion
Affichage des résultats 1 à 6 sur 6
  1. #1
    Membre régulier
    Homme Profil pro Chabane REFES
    Ingénieur développement logiciels
    Inscrit en
    mai 2007
    Messages
    165
    Détails du profil
    Informations personnelles :
    Nom : Homme Chabane REFES
    Âge : 26
    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 : 83
    Points
    83

    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 :
    1
    2
    typedef sequence<News> ListeDeNews;
    ça ne marche pas :

    Code :
    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 :
    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 éclairé
    Homme Profil pro Julien Enoch
    Architecte technique
    Inscrit en
    septembre 2006
    Messages
    219
    Détails du profil
    Informations personnelles :
    Nom : Homme Julien Enoch
    Âge : 38
    Localisation : France

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

    Informations forums :
    Inscription : septembre 2006
    Messages : 219
    Points : 308
    Points
    308

    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 Chabane REFES
    Ingénieur développement logiciels
    Inscrit en
    mai 2007
    Messages
    165
    Détails du profil
    Informations personnelles :
    Nom : Homme Chabane REFES
    Âge : 26
    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 : 83
    Points
    83

    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 éclairé
    Homme Profil pro Julien Enoch
    Architecte technique
    Inscrit en
    septembre 2006
    Messages
    219
    Détails du profil
    Informations personnelles :
    Nom : Homme Julien Enoch
    Âge : 38
    Localisation : France

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

    Informations forums :
    Inscription : septembre 2006
    Messages : 219
    Points : 308
    Points
    308

    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 Chabane REFES
    Ingénieur développement logiciels
    Inscrit en
    mai 2007
    Messages
    165
    Détails du profil
    Informations personnelles :
    Nom : Homme Chabane REFES
    Âge : 26
    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 : 83
    Points
    83

    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 :
    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 éclairé
    Homme Profil pro Julien Enoch
    Architecte technique
    Inscrit en
    septembre 2006
    Messages
    219
    Détails du profil
    Informations personnelles :
    Nom : Homme Julien Enoch
    Âge : 38
    Localisation : France

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

    Informations forums :
    Inscription : septembre 2006
    Messages : 219
    Points : 308
    Points
    308

    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).

Liens sociaux

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •