转自: http://bbs.airia.cn/FLEX/thread-5512-1-1.html?userid=1187
大家早上好,发现了一个AS3 VO转JAVA VO的BUG?请大家一起看看
package net.highall.message.vo
{
[RemoteClass(alias="net.highall.message.domain.Message")]
public class Message
{
public var messageId:int//主键ID
public var senderId:int;//发件人ID
public var receiverId:int;//收件人ID
public var subject:String;//主题
public var content:String;//内容
public var sendTime:Date;//发送时间
public var isRead:int;//是否阅读
public var stateId:int;//状态ID (0 收件箱,1 已发送,2 草稿箱)
}
这是我在AS中定义的VO,RemoteClass(alias 定义下的也是类似于这个的VO,只
下面是JAVA的VO
package net.highall.message.domain;
import java.util.Date;
public class Message {
private int messageId;//主键ID
private int senderId;//发件人ID
private int receiverId;//收件人ID
private String subject;//主题
private String content;//内容
private Date sendTime;//发送时间
private int isRead;//是否阅读
private int stateId;//状态ID (0 收件箱,1 已发送,2 草稿箱)
public int getSenderId() {
return senderId;
}
public void setSenderId(int senderId) {
this.senderId = senderId;
}
public int getReceiverId() {
return receiverId;
........................
可是我在module的组件中,调用远程方法
public function saveMessage(msgvo:Message):void{
trace(msgvo); //有数据,只是属性位置和JAVA的不一样.
var token:AsyncToken=service.saveMessage(msgvo);
token.addResponder(this);
}
时却报错 .
faultDetail="The expected argument types are (net.highall.message.domain.Message) but the supplied types were (flex.messaging.io.amf.ASObject) and converted to (null)."]
不知是不是BLAZDS的BUG啊?
已解决,原来是有二个VO,都用了 [RemoteClass(alias="net.highall.message.domain.Message")]
去掉一个VO的 [RemoteClass(alias="net.highall.message.domain.Message")]
就好了