Quando desenvolvemos um projeto, deveriamos ter vários ambientes, podendo ser o de desenvolvimento, teste, homologação e finalmente produção. Isto gera um desconforto em relação aos endpoints.
Para resolver o problema, criei uma classe "ServicesManager.as", bem simples, mas funcional, podendo ser melhorada, e com isso, configurar esses endpoints através de um xml "ConfigServices.xml".
Para sua utilização seguimos os passos:
1-Em nossa aplicação, adicionamos o serviço apontando para o ConfigServices.xml;
< mx:httpservice id="configServices" url="ConfigServices.xml">
result="{setServices(event)}" resultFormat="xml"/>
2-No evento, da aplicação, creationComplete="{init();}" executamos a chamada para o serviço;
private function init():void
{
configServices.send();
}
3- Tratamos então o result em setServices(event):
private function setServices(event:ResultEvent):void
{
var servicesManager:ServicesManager = new ServicesManager();
servicesManager.xml = XML(event.result);
//Para cada serviço em nossa aplicação, fazemos uma chamada
//Por exemplo:
srvPHP.channelSet = servicesManager.channelSet;
servicesManager.destinationSet(srvPHP);
srv.channelSet = servicesManager.channelSet;
servicesManager.destinationSet(srv);
4- Agora é só manter uma copia de ConfigServices.xml em cada servidor, configurado conforme os respectivos endpoints, configurados no services-config.xml de cada ambiente.
Faça o download e importe o projeto no Flex Builder