2009-09-30 5 views
0

Lorsque je transmets un objet de valeur ActionScript contenant une variable Date à l'aide de BlazeDS, il n'est pas correctement transféré en tant qu'objet java.util.Date. Lorsque la fonction setBaseDatefunction est appelée du côté Java, la valeur baseDate est NULL. La chose étrange est si je renomme la variable sur le côté de Java à private Date date; et crée une fonction public void setDate(Date date) cela fonctionne. Le problème est que je dois passer deux dates différentes, donc je ne peux pas utiliser ce travail.AS3 Date non sérialisable en Java Date en utilisant BlazeDS

Est-ce que quelqu'un sait ce que je fais mal?

Voici mes 2 classes:

AS3

package com.shua.flex.valueobjects 
{ 

[Bindable] 
[RemoteClass(alias='com.shua.valueObjects.myVO')] 
public class myVO 
{ 

    public var label:String; 



    public var endDate:Date; 


    public var baseDate:Date; 

    public function myVO() 
    { 
    super(); 
    } 

} 
} 

Java:

package com.shua.valueObjects; 

import java.util.Date; 



public class myVO{ 


public static String NAME = "myVO"; 

private String label; 

private Date endDate; 

private Date baseDate; 


public void setLabel(String label) { 
    this.label = label; 
} 

public String getLabel() { 
    return label; 
} 

public void setEndDate(Date endDate) { 
    this.endDate= endDate; 
} 

public Date getEndDate() { 
    return this.endDate; 
} 

public void setBaseDate(Date baseDate){ 

    this.baseDate = baseDate; 
} 

public Date getBaseDate(){ 

    return this.baseDate; 

} 
} 

Répondre

0

Le problème était la chaîne statique dans l'objet java. Je suppose que les classes doivent correspondre exactement pour que la sérialisation fonctionne automatiquement. Donc, juste enlever le nom statique résout le problème.

0

plusieurs objets d'envoi Date dans la même classe ne devrait pas être un problème.

Etes-vous sûr de ne pas avoir une petite erreur quelque part dans le getter ou le setter? Avez-vous à la fois un getter et un setter pour la propriété?

+0

pas le problème n'est pas les valeurs ne pas se régler correctement .... Le problème est que la valeur vient du flex comme NULL – Shua

+0

pour élaborer ..... disons que je mets un point de rupture dans la classe Java à la fonction setEndDate ... quand elle est exécutée, les paramètres endDate sont NULL ... même si elle a été définie dans le flex avant de l'envoyer – Shua

+0

avez-vous déjà vérifié avec un débogueur http (Charles par exemple) si la date n'est pas nulle quand vous l'envoyez? C'est avant qu'il ne soit reçu sur le serveur et analysé dans BlazeDS. –

0

Vous pouvez essayer:

  • Réglage du niveau de journalisation de débogage dans les services-config.xml pour recueillir plus d'informations. Décrit here.
  • Essayez la sérialisation personnalisée à l'aide d'IExternalizable. Bon article here.
  • Ajout de TraceTarget au fichier application.mxml pour obtenir plus d'informations de débogage. Info.
  • Étant donné que les noms de package ne correspondent pas, avez-vous enregistré l'alias de classe ou référencer l'objet dans le fichier application.mxml? Here.
Questions connexes