0

当我使用 BlazeDS 传递包含 Date 变量的 Actionscript 值对象时,它没有正确地作为 java.util.Date 对象进行传输。当在 Java 端调用 setBaseDate 函数时,baseDate 值为 NULL。奇怪的是,如果我将 Java 端的变量重命名为private Date date;并创建一个public void setDate( Date date)它可以工作的函数。问题是我需要传递 2 个不同的日期,所以我不能使用这个解决方法。

有谁知道我做错了什么?

这是我的 2 节课:

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();
  } 

 }
}

爪哇:

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;

 }
}
4

3 回答 3

0

在同一个类中发送多个 Date 对象应该不是问题。

您确定在 getter 或 setter 的某处没有小错误吗?您是否同时拥有该属性的 getter 和 setter?

于 2009-09-30T15:25:51.480 回答
0

你可以试试:

  • 在 services-config.xml 中将日志记录级别设置为调试以收集更多信息。描述在这里
  • 尝试使用 IExternalizable 进行自定义序列化。好帖子在这里
  • 将 TraceTarget 添加到 application.mxml 以获取更多调试信息。信息
  • 由于包名不匹配,您是在 application.mxml 中注册了类别名还是引用了该对象?在这里
于 2009-09-30T18:21:13.483 回答
0

问题是 java 对象中的静态字符串。我猜这些类需要完全匹配才能使序列化自动工作。因此,只需删除静态名称即可解决问题。

于 2009-10-02T14:06:17.540 回答