Quando se cria uma aplicação Flex + Java + BlazeDS o services-config.xml é criado dessa forma:
<endpoint url="http://{server.name}:{server.port}/{context.root}/messagebroker/amf" class="flex.messaging.endpoints.AMFEndpoint"/>
E na hora da compilação este arquivo é lido e o compilador no lugar de server.name coloca localhost e em server.port coloca 8080 e context.root é colocado como está configurado no Flash Builder que normalmente é o nome da aplicação.
Enquanto estivermos trabalhando local, tudo funciona beleza, mas quando passamos a nossa aplicação para um servidor de produção, as requisições AMF simplesmente deixam de funcionar porque estão tentando acessar localhost e não o ip ou nome do servidor onde hospedamos, e por segurança o Flash Player não permite acessar algo externo ao servidor.
Para resolver isso eu altero meu
endpoint removendo
server.name e
server.port ficando como abaixo:
<endpoint url="{context.root}/messagebroker/amf" class="flex.messaging.endpoints.AMFEndpoint"/>
Com isso não me preocupo mais com servidor onde hospedo minha aplicação, só preciso manter o mesmo contexto.
Pode-se mudar também messagebroker/amf, mas para isso será necessário alterar também o web.xml para que o MessageBrokerServlet "saiba" qual url deve interceptar.