Относительный контекст-рут для флеш-приложения - PullRequest
0 голосов
/ 07 июня 2010

Я использую BlazeD.

В services-config.xml мы получили следующую конфигурацию endPoint.

<channel-definition id="any-amf" class="mx.messaging.channels.AMFChannel">
    <endpoint url="http://{server.name}:{server.port}/{context.root}/messagebroker/amf" class="flex.messaging.endpoints.AMFEndpoint"/>
</channel-definition>

Перед компиляцией флеш-приложения я установил context-root в качестве опции компиляции.

bin\mxmlc  -context-root / -services "flex/services-config.xml" -optimize=true -o ..\..\bin\Messenger.swf Messenger.as

В моем случае это "/"

И проблема в том, что messanger.swf может получить запрос, если веб-приложение запускается как ROOT в веб-приложениях tomcat. Я имею в виду, что доступ может быть только по этому URL localhost: 8080 /. Если я пытаюсь переместить веб-приложение в другую папку - например, на localhost: 8080 / myApplication messenger.swf не будет работать должным образом, потому что я должен также изменить root_context.

Итак, мой вопрос, как динамически определять контекст-корень во время выполнения, без жесткого кодирования его как опции компилятора? Я хочу, чтобы мое .war-приложение работало правильно независимо от его положения в папке webapps (url).

Спасибо

Ответы [ 2 ]

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

Используйте что-то вроде HTTPUtil.as из "Flex Pasta" , чтобы получить URL-адрес приложения во время выполнения и использовать функции (getHostName, getContext, getPort) для вычисления URL-адреса вашего сервлета.

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

В этом случае я предлагаю установить конечную точку ваших каналов во время выполнения - вы не можете изменить переменную context-root во время выполнения программы.

...