Как добавить XML в запрос SOAP во Flex - PullRequest
0 голосов
/ 22 июня 2010

У меня есть служба Flex, определенная следующим образом:

    <mx:operation name="postTableDetails" resultFormat="e4x" result="event.token.resultHandler(event);" fault="event.token.faultHandler(event);">
        <mx:request>
            <catalog></catalog>
            <schema></schema>
            <table></table>
            <details></details>

В любом случае, у меня, в принципе, проблемы со сбросом аргумента, чтобы он выглядел так:

<details create_time="x" table_type="x">
    <column name="c1" datatype="INT" />
    ...
</details>

В моей функции ASкоторый в конечном итоге загружает аргументы и вызывает службу, я делаю что-то вроде этого:

var o:AbstractOperation = service.getOperation("postTableDetails");
o.arguments.catalog = catalog;
...
 o.arguments.details = new XML(details);

Если я отслеживаю свои «детали» var, а затем o.arguments.details, оба являются действительными XML-данными, которые яожидать.Но фактический запрос, который проходит через него, усекает его до:

<details><column /></details>

Я имел успех с простыми запросами, когда я просто заполнял что-то вроде схемы строкой, но этот более сложный вызов сейчас поставил меня в тупик.

Ответы [ 2 ]

0 голосов
/ 23 июня 2010

Итак, я получил его, используя предложение Равза в конце.Я изменил определение службы так:

    <mx:operation id="postTableDetails" name="postTableDetails" resultFormat="e4x" result="event.token.resultHandler(event);" fault="event.token.faultHandler(event);">
    </mx:operation>

(добавил идентификатор и удалил запрос.) Затем в делегате я присваиваю аргументы и так:

service.postTableDetails.request = XMLList(
           "<ns0:postTableDetails xmlns:ns0=\"http://nslinkfromwsdl/\">" +
           "<catalog>"+cat+"</catalog>" +
           "<schema>"+schema+"</schema>" +
           "<table>" + table + "</table>" +
           details +
           "</ns0:postTableDetails>"
           );

И это заставляет его работать правильно.Я бы не хотел жестко кодировать эту ссылку там, но я могу это выяснить в другой день!

0 голосов
/ 22 июня 2010

Сначала попробуйте поставить следующее в вашем сервисе

contentType="application/xml"

, а затем также, если оно не работает, тогда лучше иметь

request="{details}"

Попробуйте и узнайте.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...