FLEX/SOAP : Problème de conversion

Fermé
Keuz 91 Messages postés 221 Date d'inscription samedi 1 août 2009 Statut Membre Dernière intervention 28 novembre 2011 - 28 nov. 2011 à 22:04
Bonjour,

Un petit problème assez fâcheux avec les WebServices et Flex. Tout d'abord, le contexte :

- Un code serveur en Java, avec des Entities, des EJBs et des WebServices associés,

- SOAP qui communique avec le tout (aucun problème avec SOAPUI)

- Flex qui communique avec les WebServices pour récupérer les infos de la base.

Là où le bat blesse : la fonction GetDatas(), ressemblant à ceci en Java :
@WebMethod(operationName = "findDatas")
public List<Data> findDatas() {
  return ejbRef.findDatas();
}


La fonction fonctionne parfaitement avec SOAPUI, renvoyant une liste vide/contenant 1 élément/contenant 12.234.183 éléments.

Avec Flex, j'ai un CallResponder <s:CallResponder id="findDatasResult"/> qu'utilise une DataGrid pour afficher les données.

Lorsque la base de données contient plusieurs éléments (plus de 1, donc), tout se passe bien, et ma DataGrid affiche parfaitement la liste des objets, leurs caractéristiques, etc.

Par contre, lorsque la base de données ne contient qu'un seul élément, plus rien ne fonctionne ; Flash renvoie l'erreur suivante :

TypeError: Error #1034: Echec de la contrainte de type : conversion de mx.utils::ObjectProxy@7ef92e1 en mx.collections.IList impossible.


Le problème vient très certainement du fait que, n'ayant qu'un seul élément, Flex le considère non pas comme une liste, mais comme une entité seule. Dans tous les cas, ça ne fonctionne pas, et cela fait 3 jours que l'on se prend la tête sur ce sujet, à deux. Il y a beaucoup d'articles sur ces pratiques sur le net, mais quasiment personne ne parle de problèmes lorsque la base ne contient qu'un seul élément...

Quelqu'un aurait-il une solution ou un indice à proposer ?

Merci mille fois par avance,