Я пытаюсь запустить приложение Adobe Flex на основе вне браузера. Приложение компилируется с использованием файла 'services-config. xml' в качестве параметра. В файле services-config. xml каналы были настроены как
<channel-definition id="my-secure-amf" class="mx.messaging.channels.SecureAMFChannel">
<endpoint url="http://{server.host}:{server.port}/{context.root}/messagebroker/amf" class="flex.messaging.endpoints.AMFEndpoint"/>
<properties>
<add-no-cache-headers>false</add-no-cache-headers>
<polling-enabled>true</polling-enabled>
<polling-interval-millis>0</polling-interval-millis>
<wait-interval-millis>-1</wait-interval-millis>
<max-waiting-poll-requests>0</max-waiting-poll-requests>
</properties>
</channel-definition>
и т. Д. Для динамического выбора хоста и порта.
Теперь я скачал adobe_content_debugger.exe, который позволяет мне запускать файл .swf вне браузера. Однако все запросы к серверу go на http://localhost/contextRoot/messagebroker/amf. {Server.host} выбирается как localhost, а {server.port} - как пустое значение. Следовательно, я не могу взаимодействовать с внутренним сервером. Как мы можем преодолеть эту проблему?
Решения, которые я пытался ... 1) https://www.adobe.com/devnet/livecycle/articles/externalize_serviceconfig.html В этом посте вас попросят программно создать AMFChannel / channelset и добавить его в RemoteObject.
var channel:AMFChannel = new AMFChannel("my-amf", amfEndpoint);
channelSet.addChannel(channel);
_serviceControl.channelSet = channelSet;
_serviceControl.channelSet.addChannel(channel);
где _serviceControl - это удаленный объект. Но даже после этого запрос делается на http://localhost/contextRoot/messagebroker/amf. Я пробовал несколько комбинаций, но только напрасно. Будет ли программное создание channelSet делать настройки, исходящие из файла services-config, избыточными? Файл config-services ссылается на другие файлы, такие как «remoting-config. xml», «proxy-config. xml», «messaging-config. xml», в котором содержится информация о «destination»
. Решение 2) Измените services-config. xml на
<channel-definition id="my-secure-amf" class="mx.messaging.channels.SecureAMFChannel">
<endpoint url="http://example.com/8556/{context.root}/messagebroker/amf" class="flex.messaging.endpoints.AMFEndpoint"/>
<properties>
<add-no-cache-headers>false</add-no-cache-headers>
<polling-enabled>true</polling-enabled>
<polling-interval-millis>0</polling-interval-millis>
<wait-interval-millis>-1</wait-interval-millis>
<max-waiting-poll-requests>0</max-waiting-poll-requests>
</properties>
</channel-definition>
Затем просто сопоставьте example.com с IP-адресом сервера в файле хоста. Это обходной путь, но теперь порт жестко запрограммирован и не может быть изменен. Если не введен прокси-сервер.
Может кто-нибудь помочь?