Précédent   Forum du club des développeurs et IT Pro > Autres langages > Autres langages > CORBA
CORBA Forum d'entraide et de discussion sur le développement distribué avec CORBA & les ORB
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 08/03/2011, 18h55   #1
Chabanus
Membre régulier
 
Homme Chabane REFES
Ingénieur développement logiciels
Inscription : mai 2007
Messages : 165
Détails du profil
Informations personnelles :
Nom : Homme Chabane REFES
Âge : 25
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.
Chabanus est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/03/2011, 16h25   #2
CorbAddict
Membre éclairé
 
Homme Julien Enoch
Architecte technique
Inscription : septembre 2006
Messages : 219
Détails du profil
Informations personnelles :
Nom : Homme Julien Enoch
Âge : 37
Localisation : France

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

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

Citation:
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 !

Citation:
ç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.
CorbAddict est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/03/2011, 15h04   #3
Chabanus
Membre régulier
 
Homme Chabane REFES
Ingénieur développement logiciels
Inscription : mai 2007
Messages : 165
Détails du profil
Informations personnelles :
Nom : Homme Chabane REFES
Âge : 25
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
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.
Chabanus est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/03/2011, 13h49   #4
CorbAddict
Membre éclairé
 
Homme Julien Enoch
Architecte technique
Inscription : septembre 2006
Messages : 219
Détails du profil
Informations personnelles :
Nom : Homme Julien Enoch
Âge : 37
Localisation : France

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

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

Citation:
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 !
CorbAddict est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/03/2011, 13h00   #5
Chabanus
Membre régulier
 
Homme Chabane REFES
Ingénieur développement logiciels
Inscription : mai 2007
Messages : 165
Détails du profil
Informations personnelles :
Nom : Homme Chabane REFES
Âge : 25
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
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 ?
Chabanus est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/03/2011, 12h55   #6
CorbAddict
Membre éclairé
 
Homme Julien Enoch
Architecte technique
Inscription : septembre 2006
Messages : 219
Détails du profil
Informations personnelles :
Nom : Homme Julien Enoch
Âge : 37
Localisation : France

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

Informations forums :
Inscription : septembre 2006
Messages : 219
Points : 308
Points : 308
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 ? :
Citation:
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).
CorbAddict est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 13h37.


 
 
 
 
Partenaires

Hébergement Web