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, который был загружен во время выполнения, используя локальную конфигурацию проекта вместо конфигурации сервера.