Axis 2 – org.apache.axis2.AxisFault: The given SOAPAction … does not match an operation.

E ai pessoal beleza? bom venho aqui para postar a solução de um problema que tive aqui no trabalho, que me custou alguns dias de pesquisa…

Eu estava tentando consumir um webservice de um cliente e estava tomando o seguinte erro:
org.apache.axis2.AxisFault: The given SOAPAction … does not match an operation.

porém pelo soapUI funciona perfeitamente… entao, eu tinha riscado a hipótese de ser algo com o WSDL

tentei gerar o client do axis2 com ADB e com XMLBEANS porém ambos caíram no mesmo erro…
ai finalmente descobri o motivo, o WSDL do cliente realmente tinha algo errado…
os campos soapAction estavam vazios:

<soap:operation soapAction="" style="document" /> 

então  vi que existem 3 maneiras de resolver esse problema… 1ª o cliente arrumar o WSDL dele,
o que vai depender da boa vontade dele… 2ª setar o valor da action em tempo de execução e a 3ª e ultima que é desabilitar essa soap action…

a 2ª opção é fazendo o seguinte:
AlgumaCoisaServiceStub stub = new AlgumaCoisaServiceStub(); //é gerado pelo axis2
stub._getServiceClient().getOptions().setAction(“http://suaaction&#8221;);

eu acho que a action é manipulada diferentemente para cada versão do soap, para especificar a versão utilize:
stub._getServiceClient().getOptions().setSoapVersionURI(org.apache.axiom.soap.SOAP11Constants.SOAP_ENVELOPE_NAMESPACE_URI);
(ou a versão SOAP12 da constante).

e a 3º opção é fazer o seguinte:
AlgumaCoisaServiceStub stub = new AlgumaCoisaServiceStub(); //é gerado pelo axis2
stub._getServiceClient().getOptions().setProperty(org.apache.axis2.Constants.Configuration.DISABLE_SOAP_ACTION, true);

Bom… espero que esse post tenha ajudado vocês 😀
se resolver, irá poupar algumas boas horas de pesquisa 😀

Fonte: StackOverflow – Michael Sharek / mstewart

Advertisements

About Gustavo Amaro

+ Formado em Tecnologia e Análise de Sistemas + MBA em Desenvolvimento de Aplicações JAVA – SOA

Posted on 11 de Setembro de 2013, in Axis2, Eclipse, Integração, Java, SOAP, Uncategorized, Web Service, WSDL, Xml and tagged , , , , , , , , , , , , , , , , , , , , , , , , , , , . Bookmark the permalink. 14 comentários.

  1. Muchas gracias, esto ha sido muy útil.
    Saludos desde Ecuador!

  2. Obrigado! La solucion perfecta! Saludos desde Mexico!

  3. Obrigado pelo compartilhamento, resolveu meu problema.

  4. Thanks, my friend! Нou saved me!

  5. Amigo, você salvou nossa vida, passei dois dias de pesquisa até achar sua contribuição que descreveu exatamente o que acontecia comigo no SoapUi funcionava e no Java não, valeu muito obrigado!!

  6. Valeu. Era justamente esse o caso aqui também. Obrigado!

  7. Muito obrigado por compartilhar! Resolveu o meu problema!

Deixe uma Resposta

Preencha os seus detalhes abaixo ou clique num ícone para iniciar sessão:

Logótipo da WordPress.com

Está a comentar usando a sua conta WordPress.com Terminar Sessão / Alterar )

Imagem do Twitter

Está a comentar usando a sua conta Twitter Terminar Sessão / Alterar )

Facebook photo

Está a comentar usando a sua conta Facebook Terminar Sessão / Alterar )

Google+ photo

Está a comentar usando a sua conta Google+ Terminar Sessão / Alterar )

Connecting to %s

%d bloggers like this: