[AS3]Cinnamon远程方法调用参数错误

因为有点大意,远程调用方法的时候,在客户端发送时写错了一个参数造成的错误。
主要是因为远程服务那边新增一个方法,所以客户端对应的方法不是用工具生成的,自己手工写时写错。
是这样,远程的方法是这个
程序代码 程序代码

public boolean addMoreVo(AfficheVo afficheVo, ArrayList<RoomVo> roomVos);


然后客户端的对应的实现类写新方法的时候写成了这样
程序代码 程序代码

public function addMoreVo(afficheVo:AfficheVo, roomVos:Array):ServiceRequest
       {
               return cinnamon::getOperation("addMoreVo").execute([AfficheVo, roomVos]);
       }

注意execute方法的AfficheVo参数,这样写的后果是提示下面的错误信息:

ERROR:No suitable service method for request: Request
 service name = HandlerVoServices
 operation name = addMoreVo
 parameter types = [java.util.HashMap,java.util.ArrayList]

提示服务器没有addMoreVo这个方法,起初觉得很奇怪,以为是没更新到,确定了一下不是。
看它这里提示应该是参数错误,java.util.HashMap,这里于服务器对应的AfficheVo不一样,一直觉得很奇怪,怎么会出现这个错误呢?

我客户端传的是一个VO,而不是一个Object,怎么会和服务器的MAP对应呢?

不过参数错误,造成远程方法调用是肯定的,仔细检查了几遍,才发现客户端这里
程序代码 程序代码

cinnamon::getOperation("addMoreVo").execute([AfficheVo, roomVos]);

竟然在需要传vo实例的地方,竟然直接传了class了(AfficheVo是一个class),

修正错误.....
程序代码 程序代码

cinnamon::getOperation("addMoreVo").execute([afficheVo, roomVos]);


最后得到:flash里的class在服务器没有对应,所以当作object看到。。。映射到java的HashMap对象了
所以写程序必须小心....排除错误也要一步一步观察


文章来自: 本站原创
引用通告地址: http://www.sujun.org/trackback.asp?tbID=42
Tags:
评论: 2 | 引用: 0 | 查看次数: 1826
  • 1
弃天笑 [2009-02-17 10:29 PM]
不是我写的。我之前写过的是很久以前的了,是用AS2写的
小小菜鸟 [2009-02-17 04:00 PM]
天地会的《Flex和java的socket通信》系列是你写的么?
一共5篇?还有继续的么?
对我很有帮助
  • 1
发表评论
昵 称:
密 码: 游客发言不需要密码.
验证码:
内 容:
选 项:
虽然发表评论不用注册,但是为了保护您的发言权,建议您注册帐号.
字数限制 1000 字 | UBB代码 开启 | [img]标签 关闭
Google