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

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

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

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

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

Можно ли каким-либо образом преобразовать эти ObjectProxies в формат XML E4X?


person DyreSchlock    schedule 10.03.2009    source источник


Ответы (2)


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

person James Ward    schedule 13.03.2009
comment
Это хорошая идея. По какой-то причине я не подумал вернуть String и создать из нее XML. Это намного лучше, чем мой текущий обходной путь, в котором использовался HttpServlet. - person DyreSchlock; 16.03.2009

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

В службе удаленного взаимодействия вы часто используете AMFChannel. 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

Надеюсь, этот беспорядок поможет.

person typeoneerror    schedule 13.03.2009