如何让远程对象在E4X中返回XML?

如何让远程对象在E4X中返回XML?,xml,apache-flex,blazeds,e4x,remoteobject,Xml,Apache Flex,Blazeds,E4x,Remoteobject,我正在编写一个Flex应用程序,它充分利用BlazeDS作为Java服务器。我经常使用远程对象,但我遇到了一个接收XML比返回对象更干净、更快的实例 通过BlazeDS返回XML非常简单。我正在Java上使用Dom4j构建XML,并通过BlazeDS服务返回根元素。BlazeDS为我将Dom4j对象转换为XML 在Flex端接收此对象时,存在所有ObjectProxy对象,而不是XML。我以前在HttpService调用中看到过这一点,为了解决这个问题,我将resultFormat更改为E4X

我正在编写一个Flex应用程序,它充分利用BlazeDS作为Java服务器。我经常使用远程对象,但我遇到了一个接收XML比返回对象更干净、更快的实例

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

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

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


我是否可以将这些ObjectProxy转换为E4X格式的XML?

回答您的问题:

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

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

LiveCycle似乎还有一个类似的序列化程序:


希望这种混乱能有所帮助。

另外,如果您以字符串或某种形式的XML类型返回XML,那么您可以在Flex中将其转换为客户端的XML对象。

这是一个好主意。出于某种原因,我没有想到返回字符串并从中创建XML。这比我目前的工作环境要好得多,我目前的工作环境是使用HttpServlet。