Depois de muitas tentativas de fazer o Coldfusion conversar com o BPMS da Intalio, entre elas, usar Proxy de webservices, da WSO2 OxygenTank, (http://wso2.org/projects/esb/java) que na tentativa de filtrar o que estava provocando erros no axis do Coldfusion, acabou não funcionando, pois o problema eram os BUGs do próprio Axis da Apache.
Eu ia construir uma série de webservices em C# que funcionassem como Proxy, convertendo as chamadas do Intalio BPMS para o Coldfusion e vice versa. Mas o empreendimento seria grande demais, pois a cada manutenção do de qualquer serviço tanto de um lado como do outro, deveria ser feita manutenção no meio também.
Então tomei uma decisão radical: mergulhar no código fonte do Axis (disponível na Apache em http://svn.apache.org/viewcvs.cgi/webservices/axis/trunk/) e tentar corrigir seus problemas perante o Intalio. Eu já sabia que o problema era ele, pois sua tecnologia foi substituída pelo Axis2, mas o Coldfusion continua usando a versão 1.
No site da apache (https://issues.apache.org/jira/browse/AXIS) mostra todos os bugs conhecidos e corrigidos do Axis, e encontrei um relacionado com o problema que tive, relacionado com as declarações <SOAP:FAULT>.
Comecei a fazer testes nos fontes do Axis e encontrei vários pontos que provocavam problemas.
O Coldfusion lida com webservices gerando códigos em Java de cada um dos serviços, e essa geração é feita pelo axis usando o comando WSDL2Java.
Ao gerar os fontes em Java para o Coldfusion, o axis falhava na geração de nomes de classes os mesmos não compilavam dentro do CF.
Fui eliminando os problemas um por um e acabei chegando a um ultimo, uma função chamada getAttachments dentro da classe stub.java – sempre que compilava o wsdl para Java conflitava essa função. O problema era a chamada do serviço TaskManagementService do Intalio, que tem uma operação com o mesmo nome, e o axis acabou gerando esse método com o mesmo nome do herdado, provocando um conflito de heranças.
Esse eu também corrigi, e agora estou usando um AXIS personalizado dentro do ColdFusion 8 (funciona no 7 tambem).
Se alguém tiver o mesmo problema é só me pedir que eu mando o pacote do Axis para testar.
Fernando Francisco de Oliveira
Analista de Suporte - TI