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

Flex Discussion :

Problème de casting


Sujet :

Flex

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Mars 2008
    Messages
    57
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 57
    Par défaut Problème de casting
    Bonjour,
    Après des jours de recherches, j'ai décidé de postuler mon problème.
    j'utilise le RemoteObject pour accéder au service de mon serveur BlazeDS.
    Au client j'essaie toujours de récupérer l'object renvoyé par le serveur par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var result:MyClassVO  = event.result as MyClasVO;
    j'ai verifié plusieurs fois que mapping entre MyClassVO sous le serveur et MyClassVO sous AS est correcte, mais sans résultat: event.result est de type Object.

    ce qui m'étonne de plus est que ce casting parfois IL PASSE !!!!
    Comment ca peut arriver!! je sais pas.
    j'espère que vous m'éclairer ma lanterne et merci d'avance.

  2. #2
    Membre confirmé
    Inscrit en
    Mars 2008
    Messages
    57
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 57
    Par défaut
    Bonjour, j'ai googlé un peu et j'ai trouvé que pour la plupart des discussions de ce problème propose d'ajouter l'alias à la classe actionscript MyClasVO

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    [RemoteClass(alias="mypack.MyClasVO")]
    Mais pour mon c déja fait!! Ajouter cet alias n'a aucun garanti sur le type d'objet
    retourné du serveur.

    qu'est ce que m'échappe !!!!

  3. #3
    Membre Expert

    Profil pro
    Inscrit en
    Mai 2006
    Messages
    895
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 895
    Par défaut
    Petite question : mypack.MyClasVO est bien le nom de ta classe côté Java ? avec le bon nom de package ? Sinon il faudrait nous montrer les différentes classes AS et Java pour voir.

  4. #4
    Membre éprouvé
    Homme Profil pro
    Tech Lead
    Inscrit en
    Novembre 2006
    Messages
    120
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Tech Lead
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Novembre 2006
    Messages : 120
    Par défaut
    Hello,

    Alors je sais pas ce que contient ton objet Java, mais si par le plus grand des hasards il contient des objets un peu complexes ou bien des Enum, il est possible que la sérialisation se passe mal...
    Il faudrait que tu nous donnes le code de l'objet que tu cherche à sérialiser.

  5. #5
    Membre confirmé
    Inscrit en
    Mars 2008
    Messages
    57
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 57
    Par défaut
    enfin j'ai trouvé une solution pour ce problème mais j'éspère que je trouve des explications car je le trouve bizarre.
    j'expose tout d'abord mes classes:
    coté java:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    public class ClassVO{
    public int id;
    public List<A> list = new ArrayList<A>();
    public ClassVO(){}
    }
    public class A{
    public int id;
    public String name;
    public A(){}
    }
    coté Actionscript
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    [RemoteClass(alias="ClassVO")]
    public class ClassVO{
    public var id:int;
    public var list:ArrayCollection = new ArrayCollection();
    public ClassVO(){}
    }
    [RemoteClass(alias="A")]
    public class A{
    public var id:int;
    public var name:String;
    public A(){}
    }
    Tout d'abord je veux dire que travaille avec les modules,et que le casting
    de event.result as ClassVO passe sans problème mais c'est le casting d'un élément de "list" de type ArrayCollection qui retourne null.quoique que je fait
    list.getItemAt(i) est de type Object. c'est comme si la classe A n'existe pas ou n'est pas compilé !!!
    alors j'ai ajouté une ligne à mon programme main qui fait le loading des modules et j'ai declaré une variable de type A. Je sais si j'ai fait une stupide mais le casting passe sans problème

  6. #6
    Membre Expert

    Profil pro
    Inscrit en
    Mai 2006
    Messages
    895
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 895
    Par défaut
    Effectivement et cela s'explique ! J'ai déjà rencontré ce problème mais comme il me manquait des informations sur ton code je ne pouvais pas le deviner .

    La raison est qu'à aucun moment dans ton application Flex tu utilises explicitement la classe A. Or il faut savoir que le compilateur Flex est "paresseux" et qu'il ne compile pas les classes qui ne sont pas explicitement utilisé dans le code. Cela signifie qu'il va partir de la racine mx:Application et compiler toutes les classes qui sont appelées à partir de là. Dans ton cas, tu n'avais pas déclarer quelque part dans ton code la classe A et il ne l'a donc pas compilé. D'où l'erreur à l'exécution. La seule solution que je vois est de faire ce que tu as fait : déclarer la classe A quelque part, dans mx:Application pour être sûr.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [CASTS]problème de cast de Time
    Par DeVoN dans le forum Langage
    Réponses: 7
    Dernier message: 22/02/2006, 17h24
  2. [JDBC Driver][JSTL] Problème de cast de données
    Par GyLes dans le forum PostgreSQL
    Réponses: 1
    Dernier message: 27/09/2005, 10h00
  3. problème de cast!
    Par LaseLiep dans le forum Langage
    Réponses: 3
    Dernier message: 03/06/2005, 09h30
  4. Problème de cast/serialization/externalization ?
    Par Linlin dans le forum CORBA
    Réponses: 1
    Dernier message: 06/12/2004, 16h46
  5. [C#] Problème de casting de @IDENTITY
    Par bilb0t dans le forum Accès aux données
    Réponses: 7
    Dernier message: 03/09/2004, 09h42

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