Как я могу заставить удаленные объекты возвращать XML в E4X? - PullRequest
2 голосов
/ 10 марта 2009

Я пишу приложение Flex, которое полностью использует BlazeDS для Java-сервера. Я часто использую удаленные объекты, но я столкнулся с примером, когда получение XML чище и быстрее, чем возвращение объектов.

Возврат XML через BlazeDS достаточно прост. Я собираю XML с Dom4j на Java и возвращаю корневой элемент через сервис BlazeDS. BlazeDS переводит объекты Dom4j в XML для меня.

При получении этих объектов на стороне Flex все объекты ObjectProxy, а не XML. Я видел это раньше в вызове HttpService, и чтобы исправить это, я изменил формат результата на E4X.

Однако я не могу установить resultFormat для вызова службы RemoteObject.

Можно ли в любом случае преобразовать эти ObjectProxies в форматированный E4X XML?

Ответы [ 2 ]

3 голосов
/ 13 марта 2009

Кроме того, если вы возвращаете XML в виде строки или какого-либо формального типа XML, вы можете преобразовать его в объект XML на стороне клиента во Flex.

1 голос
/ 13 марта 2009

Чтобы ответить на ваш вопрос:

Служба удаленного взаимодействия часто использует канал AMFC. AMFChannel использует двоичный AMF кодирование по HTTP. Если двоичные данные не разрешены, вы можете использовать HTTPChannel, который такое AMFX (AMF в XML) через HTTP.

и

http://livedocs.adobe.com/blazeds/1/javadoc/flex/messaging/io/amfx/package-summary.html

Формат данных RemoteObject - двоичный AMF, поэтому, возможно, вам следует вместо этого использовать класс WebService или HTTPService, если вы хотите работать с XML (AMF будет быстрее; возможно, вы потеряете скорость, если будете работать с XML - не уверены в AMFX ).

Похоже, что LiveCycle также имеет похожий сериализатор:

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

Надеюсь, что некоторые из этого беспорядка помогут.

...