web services java type complexe

tet.dum
web services java type complexe

Bonjour,
je travaille actuellement sur les web services. J'ai compris comment faire un web service bete (genre une addition), mais j'ai un probleme: je voudrais non pas echanger des entiers (dans le cas de l'addtion) mais des types complexes, non prédéfinis dans Java, une sorte de structure de données... Or quand je genere mon web service avec eclipse, il me dit que ma classe ne respecte pas jax-rpc...
Quelqu'un a-t-il la solution?
Merci
Tet.dum

fredericmazue

,e Bonjour,

Quote:

je voudrais non pas echanger des entiers (dans le cas de l'addtion) mais des types complexes, non prédéfinis dans Java, une sorte de structure de données...

Oui mais attention....

Quote:

me dit que ma classe ne respecte pas jax-rpc...
Quelqu'un a-t-il la solution?

C'est difficile à dire car les sources d'erreurs peuvent être nombreuses. Mais comme tu présentes la question, le pb est peut être dans "la sorte de structure de données"

Pour autant que je me souvienne (ça remonte déjà à loin là dernière fois que j'ai eu à mettre la main dans cet infâme cambouis) ta structure de données doit être une classe Java et pas n'imorte quelle classe mais un JavaBean bien propre sur lui, avec les données private et des accesseurs, etc.

Je ne me souviens pas si les membres doivent être des types primitifs ou peuvent être des classes eux mêmes.

Essai de voir si cette histoire de JavaBean arrange tes affaires dans un premier temps

tet.dum

j'ai tout fait pour que ma classe soir un bean. Ca marche bien dans des cas simples.
Mais en fait, ma strucutre de données contient un arraylist, et ce n'est pas accepté par jax-rpc, donc mm en faisant un bean, ca marche pas!
Tu as des souvenirs la-dessus qui remont eà la surface?
Merci

fredericmazue

Quote:

j'ai tout fait pour que ma classe soir un bean. Ca marche bien dans des cas simples.

Bon..

Quote:

Mais en fait, ma strucutre de données contient un arraylist, et ce n'est pas accepté par jax-rpc, donc mm en faisant un bean, ca marche pas!
Tu as des souvenirs la-dessus qui remonte à la surface?

Je n'ai pas vraiment de souvenirs qui remontent. Mais tu va avoir du mal à faire marcher ça je le crains
D'abord je ne sais pas si ArraList est un JavaBean lui même.
Ensuite je ne suis pas sûr que jax-rpc soit capable de marshaller des objets profonds comme ça.
Fondamenalement un ArrayList ça contient des instances d'Object (même en Java 5), donc le vrai type des données contenues dedans va sans doute se perdre dans les tuyaux.
Il faudrait au minimum faire passer un tableau classique contenant des instance de classe:

je veux dire:

class employe
{
int age;
String Nom
}

et

Employee[] methodeDuService{ return /* etc, */ }

Comme ça tu dois pouvoir y arriver en admettant bien sûr que ça corresponde à ton besoin.

Sinon j'ai déjà fais transiter des objets Java complexes sur le réseau, mais c'était en CORBA. (et c'était aussi une usine à gaz) ; En jax-rpc je crains que tu ne sois plus limité.

tet.dum

merci pour ces infos! j'ai contourné le pb des arrayList comme tu l'as dit.
A plus
tet.dum