Flex игнорирует изменения в services-config.xml - PullRequest
3 голосов
/ 22 июня 2010

Вчера я провел половину дня, пытаясь заставить Flex Remoting использовать HTTPS, но безуспешно.

Сегодня я попытался подключиться к другому домену. Я изменил URL конечной точки, но похоже, что flex просто игнорирует мои изменения. Я уверен, что старый URL не существует ни в одном файле в каталоге src, Я даже переименовал services-config.xml в services-config2.xml, много раз чистил и перестраивал проект, даже делал сборку релиза, но он все еще подключался к тому же домену.

Я тестировал flex-приложение на локальном хосте и в том же домене, где есть службы AMF, но оно работает таким же образом.

Мой services-config.xml:

<?xml version="1.0" encoding="UTF-8"?>
<services-config>
    <services>
        <service id="amfphp-flashremoting-service" class="flex.messaging.services.RemotingService" messageTypes="flex.messaging.messages.RemotingMessage">
            <destination id="amfphp">
                <channels>
                    <channel ref="my-amfphp-secure"/>
                    <channel ref="my-amfphp"/>
                </channels>
                <properties>
                    <source>*</source>
                </properties>
            </destination>
        </service>
    </services>
    <channels>
        <channel-definition id="my-amfphp-secure" class="mx.messaging.channels.SecureAMFChannel">
            <endpoint uri="https://xxx.dev.company.com:443/AMF" class="flex.messaging.endpoints.SecureAMFEndpoint"/>
            <properties>
                <polling-enabled>false</polling-enabled>
                <serialization>
                    <instantiate-types>false</instantiate-types>
                    <log-property-errors>true</log-property-errors>
                </serialization>
                <add-no-cache-headers>false</add-no-cache-headers>
            </properties>
        </channel-definition>
        <channel-definition id="my-amfphp" class="mx.messaging.channels.AMFChannel" >
            <endpoint uri="http://xxx.dev.company.com/AMF" class="flex.messaging.endpoints.AMFEndpoint" />
            <properties>
                <polling-enabled>false</polling-enabled>
                <serialization>
                    <instantiate-types>false</instantiate-types>
                    <log-property-errors>true</log-property-errors>
                </serialization>
                <add-no-cache-headers>false</add-no-cache-headers>
            </properties>
        </channel-definition>
    </channels>
</services-config>

Определение удаленного объекта в mxml:

<mx:RemoteObject id="Agentrpc" destination="amfphp" source="Agentrpc" showBusyCursor="true">
    <mx:method name="getAgentID" result="getAgentID_resultHandler(event)" fault="faultHandler(event)"/>
</mx:RemoteObject>

Я использую Flex 3.

Редактировать: я посмотрел на сгенерированный / dir и вижу, что файлы FlexInit (например, MainModule_FlexInit-generated.as) содержат код:

ServerConfig.xml =
<services>
    <service id="amfphp-flashremoting-service">
        <destination id="amfphp">
            <channels>
                <channel ref="my-amfphp-secure"/>
                <channel ref="my-amfphp"/>
            </channels>
        </destination>
    </service>
    <channels>
        <channel id="my-amfphp-secure" type="mx.messaging.channels.SecureAMFChannel">
            <endpoint uri="https://gintautas.dev.company.com:443/AMF"/>
            <properties>
                <polling-enabled>false</polling-enabled>
            </properties>
        </channel>
        <channel id="my-amfphp" type="mx.messaging.channels.AMFChannel">
            <endpoint uri="http://gintautas.dev.company.com/AMF"/>
            <properties>
                <polling-enabled>false</polling-enabled>
            </properties>
        </channel>
    </channels>
</services>;

Это верно, но приложение не отправляет запросы на gintautas.dev.company.com

Редактировать 2: Я установил Flash Builder 4 и попытался скомпилировать с использованием компиляторов 3.5 и 4.0 (в режиме совместимости), но у обоих одинаковая проблема: (

Ответы [ 3 ]

1 голос
/ 23 июня 2010

вы можете проверить, что компилируется в flex из файлов * -config.XML, с помощью следующего:

trace( ServerConfig.XML );

Также, если вы используете WTP с tomcat, проверьте, использует ли сервер фактическую установку tomcat или папку temp eclipse для запуска. иногда это может привести к путанице.

1 голос
/ 22 июня 2010

Можете ли вы попытаться очистить кеш браузера?Содержимое services.xml внедряется в SWF во время компиляции.

0 голосов
/ 04 ноября 2010

Вы должны «очистить проект» во Flex Builder при изменении services-config.xml

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...