RemoteObject не соответствует местоположению канала

У меня есть SWF, который по некоторым причинам имеет четыре объекта RemoteObject, указывающих на один и тот же ChannelId, но они перечисляют этот канал как находящийся в двух разных местах. В четырех из пяти объектов RemoteObject все работает так, как ожидается, но в четвертом (WidgetService) версия на dev переключается с dev.context.root на loc.context.root. Чтобы сделать вещи более запутанными, он делает это только на сервере разработки (QA и производство в порядке, как и локальные сборки).

Соответствующая информация из конфигурационных файлов:

    # Это из build.properties, который используется Ant 
    # для сборки swf на сервере flex.sdk.dir           = /path/to/sdk/flex_sdk_3.2.0.3958
    flex.sdk.bin.dir       = ${flex.sdk.dir}/bin
    flex.sdk.framework.dir = ${flex.sdk.dir}/frameworks
    flex.sdk.libs.dir      = ${flex.sdk.framework.dir}/libs
    flex.sdk.locale.dir    = ${flex.sdk.framework.dir}/locale/{locale}
    flex.sdk.locale        = en_US

    loc.context.root       = /somename-1.0.4.0000
    dev.context.root       = /dev-somename
    qa.context.root        = /somename
    prod.context.root      = /
    # это значение изменяется в зависимости от сборки.
    context.root           = ${dev.context.root}
<!-- All of the RemoteObjects are directed here -->
<channel-definition id="my-amf" class="mx.messaging.channels.AMFChannel">
    <endpoint url="http://{server.name}:{server.port}/{context.root}/messagebroker/amf" class="flex.messaging.endpoints.AMFEndpoint"/>
</channel-definition>

<!-- A list of the services -->
<destination id="UserService">
    <properties>
        <factory>spring</factory>
        <source>userService</source>
    </properties>
    <channels>
        <channel ref="my-amf"></channel>
    </channels>
</destination>    

<destination id="SystemService">
    <properties>
        <factory>spring</factory>
        <source>systemService</source>
    </properties>
    <channels>
        <channel ref="my-amf"></channel>
    </channels>
</destination>    

<destination id="SessionService">
    <properties>
        <factory>spring</factory>
        <source>sessionService</source>
    </properties>
    <channels>
        <channel ref="my-amf"></channel>
    </channels>
</destination>    

<destination id="VistorService">
    <properties>
        <factory>spring</factory>
        <source>visitorService</source>
    </properties>
    <channels>
        <channel ref="my-amf"></channel>
    </channels>
</destination>    

<destination id="WidgetService">
    <properties>
        <factory>spring</factory>
        <source>widgetService</source>
    </properties>
    <channels>
        <channel ref="my-amf"></channel>
    </channels>
</destination>  

1 ответ

Решение

Оказывается, что другой разработчик создал SWF, который был загружен во время выполнения, используя локальную конфигурацию проекта вместо конфигурации сервера.

Другие вопросы по тегам