Мы настроили наш клиент Flex на два канала для вызова наших услуг через BlazeDS.
Один канал настроен на использование AMFChannel, а другой для HTTPChannel. Вот службы-config.xml
<channel-definition id="my-amf" class="mx.messaging.channels.AMFChannel">
<endpoint url="http://{server.name}:{server.port}/{context.root}/data/messagebroker/amf"
class="flex.messaging.endpoints.AMFEndpoint" />
<properties>
<polling-enabled>false</polling-enabled>
</properties>
</channel-definition>
<channel-definition id="my-amfx" class="mx.messaging.channels.HTTPChannel">
<endpoint url="http://{server.name}:{server.port}/{context.root}/data/messagebroker/amfx"
class="flex.messaging.endpoints.HTTPEndpoint" />
<properties>
<polling-enabled>false</polling-enabled>
</properties>
</channel-definition>
Наш гибкий клиент написан для использования AMF или AMFX в зависимости от того, как мы его настроили. Проблема заключается в том, что, хотя клиент может переключаться между каналами, он отправляет двоичную полезную нагрузку AMF при попытке вызвать службы через AMFX (ожидая XML).
Самое смешное, что мы можем написать services-config.xml для использования либо AMF, либо AMFX по отдельности, но, похоже, Flex не хочет, чтобы мы использовали оба.
Это ошибка в Flex? Если нет, то как мы можем заставить его использовать правильный протокол?