我正在编写一个Flex应用程序,它将BlazeDS充分用于Java服务器。我经常使用远程对象,但是我遇到了一个接收XML比返回对象更清晰,更快的实例。

通过BlazeDS返回XML非常简单。我正在使用Java上的Dom4j构建XML,并通过BlazeDS服务返回根元素。 BlazeDS将Dom4j对象转换为XML。

在Flex端接收此对象时,存在所有ObjectProxy对象而不是XML。我之前在HttpService调用中看过这个,为了解决这个问题,我将resultFormat更改为E4X。

但是,我无法在RemoteObject服务调用上设置resultFormat。

无论如何我可以将这些ObjectProxies转换为E4X格式的XML吗?

有帮助吗?

解决方案

此外,如果您将XML作为String或某种正式的XML类型返回,那么您可以将其转换为Flex中客户端的XML对象。

其他提示

回答你的问题:

  

使用远程服务,您经常使用AMFChannel。 AMFChannel使用二进制AMF   通过HTTP编码。如果不允许二进制数据,那么您可以使用HTTPChannel   是通过HTTP的AMFX(XML格式的AMF)。

http:// livedocs .adobe.com / BlazeDS的/ 1 / javadoc的/柔性/消息/ IO / AMFX /包summary.html

RemoteObject的数据格式是二进制AMF,所以如果你想使用XML,你应该使用WebService或HTTPService类(AMF会更快;如果你使用XML,可能会失去速度 - 不确定AMFX )。

LiveCycle似乎也有类似的序列化器:

http ://livedocs.adobe.com/livecycle/8.2/programLC/programmer/javadoc/flex/messaging/io/amfx/package-detail.html

希望一些混乱有所帮助。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top