Back-End

14 ago, 2018

Java Soap RPC/encoded

Publicidade

Para quem trabalha com WS SOAP, sabe que existe uma versão de 12 anos atrás, bem ultrapassada que usa o primeiro modelo de SOAP 1.x do tipo “encoded”. Não entrando no mérito dessa questão agora (veja esse material para dúvidas), sabemos que muitas empresas ainda estão desenvolvendo esse modelo de WS para novos projetos. Motivo? Independentemente do porquê disso, nós temos que fazer a integração e o projeto precisa caminhar, e a dica de hoje é sobre isso:

A primeira questão é que a versão do JAX-RS atual do java não implementa essa versão antiga de SOAP, deixando muitos desenvolvedores na mão. Qualquer tentativa de gerar o STUB para um WSDL do tipo encode é gerada um erro bem conhecido:

“Use of SOAP Encoding is not supported. SOAP extension element on line 65 in file has use=”encoded”” Failed to parse the WSDL.

A unica solução para esses casos é deixar de usar a versão oficial do JAX-RS da JDK [Metro] e usar a antiga API de 2006 Apache Axis 1.4 que suporta esse protocolo. O problema que é gerador de STUB dele é bem chato, cheio de jars, muitas dependências, configurações de classpath e muitos detalhes que atrapalham e atrasam de mais o objetivo final, que é gerar um STUB java e consumir o SOAP.

A dica é a seguinte: use a ferramenta SoapUI para consumir, testar e gerar o STUB automaticamente. Segue os passos:

Passo 1:

Baixe a versão grátis e faça a instalação.

Passo 2:

Crie um projeto, menu: File > New SOAP Project:

Passo 3:

Crie um nome para o projeto e adicione o endereço o WSDL.

Passo 4:

Clique no projeto e entre na opção Generate Code > Axis 1 x, que é a opção para gerar o STUB justamente o apache AXIS.

Passo 5:

Antes de gerar o STUB, clique no botão Tools para configurar os jars do axis.

Passo 6:

No item de menu Tools, na opção Axis 1.x, configure os jar dos frameworks axis, colocando obrigatoriamente em uma pasta chamada lib.

Veja os jars que eu usei nesse exemplo:

Passo 7:

Escolha sua pasta de preferencia, click no botão “Generate” para gerar então o STUB para consumir esse soap antigo.

Todas as classes de STUB (interfaces, objeto de transferências, mapeadores SOAP e ports) serão geradas. Você pode alterar os pacotes a gosto e importar no seu projeto. Uma opção rápida, fácil e que evita perder seu precioso tempo com essa parafernália de SOAP antigo.

Até a próxima, galera!