0

我有一些实现序列化的 Java 类,以及实现 IExternalizable 的相应 AS 对象(由 GAS 自行生成)。

从服务器接收对象没有问题,但是当我尝试将对象发送到服务器时 - 它会引发异常:

[BlazeDS]Class 'xxx' must implement java.io.Externalizable to receive client 
 IExternalizable instances. flex.messaging.io.SerializationException: Class 'xxx' must  
implement java.io.Externalizable to receive client IExternalizable instances.

真的我必须实现 Externalizable 将对象发送到 Java 服务器?!

4

2 回答 2

1

实际上,我不必实现 Externalizable 甚至不需要 Serializable。相反,我只需要在 flex 方面指定它是一个远程类,其别名指向完整的 java 类路径。我还应该确保属性名称(或 getter 和 setter)等于 java 对象的属性名称。最后,我应该确保对象/属性类型匹配或转换良好(数字 java 对象到 Flex 中的 Number 等)。

于 2011-12-13T09:17:46.730 回答
0

您必须实现 Externalizable。

请参阅http://help.adobe.com/en_US/LiveCycleDataServicesES/3.1/Developing/WSc3ff6d0ea77859461172e0811f00f6eab8-7ffdUpdate.html

在 ActionScript 和 Java 之间使用自定义序列化

如果客户端上的 ActionScript 和服务器上的 Java 之间的数据序列化和反序列化标准机制不能满足您的需求,您可以编写自己的序列化方案。您在客户端实现基于 ActionScript 的 flash.utils.IExternalizable 接口,并在服务器上实现相应的基于 Java 的 java.io.Externalizable 接口。

于 2011-11-14T12:58:52.360 回答