代码之家  ›  专栏  ›  技术社区  ›  Naktibalda

Flex忽略services-config.xml中的更改

  •  3
  • Naktibalda  · 技术社区  · 14 年前

    昨天,我花了半天时间试图强制Flex Remoting使用HTTPS,但没有成功。

    我更改了端点的url,但看起来flex忽略了我的更改。 我确信旧的URL不存在于SRC目录中的任何文件中,

    我已经在本地主机和同一个域中测试了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>
    

    编辑:我查看了generated/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 回复  |  直到 14 年前
        1
  •  1
  •   Cornel Creanga    14 年前

    你能试着清除你的浏览器缓存吗?xml的内容在编译时被注入到SWF中。

        2
  •  1
  •   David Collie    14 年前

    您可以使用以下命令检查从*-config.XML文件编译成flex的内容:

    trace( ServerConfig.XML );
    

    此外,如果将WTP与tomcat一起使用,请检查服务器是否正在使用tomcat的实际安装,或者是否正在运行temp eclipse文件夹。有时会造成混乱。

        3
  •  0
  •   Thommas    14 年前