Hier, j'ai passé la moitié de la journée à essayer de forcer Flex Remoting à utiliser HTTPS sans succès.Flex ignore les changements dans services-config.xml
Aujourd'hui, j'ai essayé de me connecter à un autre domaine. J'ai changé l'adresse URL du point de terminaison, mais il semble que flex ignore simplement mes changements. Je suis sûr qu'une ancienne URL n'existe pas dans un fichier dans le répertoire src, J'ai même renommé services-config.xml à services-config2.xml, nettoyé et reconstruit projet plusieurs fois, même fait une version de construction, mais il se connecte toujours au même domaine.
J'ai testé l'application flexible dans localhost et dans le même domaine, qui a des services AMF, mais cela fonctionne de la même manière.
Mes services-config.xml est:
<?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>
définition RemoteObject dans MXML:
<mx:RemoteObject id="Agentrpc" destination="amfphp" source="Agentrpc" showBusyCursor="true">
<mx:method name="getAgentID" result="getAgentID_resultHandler(event)" fault="faultHandler(event)"/>
</mx:RemoteObject>
J'utilise Flex 3.
Edit: J'ai regardé généré/dir et je vois que les fichiers FlexInit (comme MainModule_FlexInit-generated.as) contient le code:
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>;
C'est exact, mais l'application ne fait pas la demande de gintautas.dev.company.com
Edit 2: J'ai installé Flash Builder 4 et essayé de compiler en utilisant 3.5 et 4.0 (en mode de compatibilité) compilateurs, mais les deux ont le même problème :(
Cela peut ou ne peut pas aider (puisque nous évitons des services de config autant que possible et faire autant que possible programatically), mais je sais que les problèmes que j'avais il y a quelques années concernaient la classe AMFChannel par rapport à la classe SecureAMFChannel. Je ne sais pas comment channelSet de votre remoteObject est initialisé lorsque le fichier xml services-config est analysé, mais je sais que j'ai l'impression d'avoir beaucoup plus de contrôle lorsque ces choses sont faites par programmation. –