2010-08-26 6 views
0

Je fais un appel distant à une méthode définie sur mon backend Java (en utilisant BlazeDS). Cette méthode renvoie un objet MyType. Du côté Flex, la valeur de retour est bien sûr encapsulée dans un objet ResultEvent et stockée en tant qu'objet. Le débogueur montre clairement que ResultEvent contient un MyType dans son champ de résultat. Donc, naturellement, vous vous attendez à ce que je puisse convertir le résultat d'un objet en un MyType, mais le résultat est null. Voici un code pour illustrer ce qui se passe ...Flex ne peut pas convertir un objet en MyType malgré le débogueur indiquant que l'objet est MyType

fonction privée scenarioLoadedHandler (event: ResultEvent): void {

résultat var: Object = event.result;

// willCastWork est fausse

var illCastWork: Boolean = (résultat est MyType);

// myType est nulle

var myType: MyType = résultat que MyType; }

Rappelez-vous le débogueur montre clairement ce résultat est de type « MyType » mais échoue casting, les idées pour lesquelles cela peut se produire?

Répondre

0

Parfois, je rencontre un problème similaire si le navigateur charge le fichier .swf mis en cache. Donc, effacez le cache du navigateur et essayez si cela résout votre problème.

0

Ce problème se produit parfois lorsque les bibliothèques sont obsolètes entre les applications. J'ai eu le même problème lors du chargement de modules dans une autre application. Quand je gère la communication entre les deux, ils ne peuvent pas passer des objets d'une version à une autre.

+0

Pour prendre en charge ce scénario, vous devez "amorcer" ces classes partagées, c'est-à-dire déclarer une référence explicite à la classe dans le domaine d'application de niveau supérieur. –