Web service operation “MethodName” with parameters {…} could not be found

Hoje, ajudei um amigo a debugar um problema muito esquesito usando web services com o ColdFusion MX 6.1.

Não importava como chamavamos o web services e o tipo de dados que retornavamos. A página que invocava o serviço sempre retornava uma mensagem de erro do tipo:

Web service operation “MethodName” with parameters {…} could not be found

O componente que ele havia programado retornava uma query que era filtrada a partir de alguns argumentos passados para o web service do tipo http://www.meuservidor.com.br/ws/meucomponente.cfc?wsdl (sendo o ws um mapeamento feito no ColdFusion).

A primeira coisa que resolvemos fazer foi simplicar o componente para retornar apenas uma string. E então ele continuou recebendo o mesmo erro.

Depois de muitas tentativas, resolvi chamar o web service de um outro servidor CF. E então, como um passe de mágica, o web service retornou exatamente o que queriamos.

A única conclusão que posso chegar é que existe algum problema de gerenciamento de cache para web services. No caso do meu amigo, ele não podia reiniciar o serviço do ColdFusion. Então a única forma de “limpar o cache” desse web services foi fazendo uma requisão a partir de uma outra maquina rodando o ColdFusion.

Obviamente, antes de tentar resolver o problema por esse método de tentativa/erro pesquisamos muito no Google e nada de respostas concretas e claras…

Enfim, algumas vezes temos que agir quase que por instinto para resolver os problemas que nos ocorrem. Se algum dia alguem tiver uma explicação técnica/racional/lógica para isso favor comentar!

Cordiais Saudações