Axis2 WebService Client: mudanças entre as edições
Criou página com 'Este documento relata a maneira mais fácil de construir um webservice client utilizando o Axis2 para gerar as classes de acesso a partir do WSDL. Utilizaremos o Axis 2 ao inv...' |
Sem resumo de edição |
||
Linha 1: | Linha 1: | ||
Este documento relata a maneira mais fácil de construir um webservice client utilizando o Axis2 para gerar as classes de acesso a partir do WSDL. Utilizaremos o | Este documento relata a maneira mais fácil de construir um webservice client utilizando o Axis2 para gerar as classes de acesso a partir do WSDL. | ||
Utilizaremos o Axis2 v1.7.9, mesma atualmente sendo utilizada como dependência nos módulos do BIS10 e BISFW. | |||
== Baixando o Axis2 == | |||
Para gerar as classes precisamos dos binários do Axis2, que podem ser baixados no site: https://axis.apache.org/axis2/java/core/download.cgi. | |||
Por já ser uma versão legada (já temos a 1.8), a versão 1.7.9 pode ser encontrada no ''archive'' do Axis2: http://archive.apache.org/dist/axis/axis2/java/core/1.7.9/ | |||
Baixe o pacote '''axis2-1.7.9-bin.zip''' e descompacte em alguma pasta de preferência, chamada de '''%AXIS2_HOME%''' deste ponto em diante. | |||
== Preparando o Eclipse == | == Preparando o Eclipse == |
Edição das 15h24min de 9 de setembro de 2021
Este documento relata a maneira mais fácil de construir um webservice client utilizando o Axis2 para gerar as classes de acesso a partir do WSDL.
Utilizaremos o Axis2 v1.7.9, mesma atualmente sendo utilizada como dependência nos módulos do BIS10 e BISFW.
Baixando o Axis2
Para gerar as classes precisamos dos binários do Axis2, que podem ser baixados no site: https://axis.apache.org/axis2/java/core/download.cgi.
Por já ser uma versão legada (já temos a 1.8), a versão 1.7.9 pode ser encontrada no archive do Axis2: http://archive.apache.org/dist/axis/axis2/java/core/1.7.9/
Baixe o pacote axis2-1.7.9-bin.zip e descompacte em alguma pasta de preferência, chamada de %AXIS2_HOME% deste ponto em diante.
Preparando o Eclipse
Antes de gerar as classes necessárias é preciso que o Eclipse tenha o Axis 2 configurado, já que não vem nativamente com a instalação do Eclipse. Primeiro precisamos fazer o download da biblioteca do Axis (use o .WAR) e salvar em alguma pasta conveniente para o Eclipse encontrar. O BISERP já contém as biblicas do axis2, mas são apenas para runtime, não para a geração do código.
O Axis pode ser baixado a partir deste link: http://ws.apache.org/axis2/download.cgi.
![]() |
|
Com o Axis 2 baixado e extraído, vá no menu Window -> Preferences e encontre na árvore a esquerda o item Axis2 Prefences. Na aba Axis2 RunTime indique o diretório onde você extraiu o .WAR, se o Eclipse encontrar o Axis 2 ele mostrará uma mensagem avisando assim que o campo perder o foco, como mostra a imagem abaixo:

Gerando o Stub para Acessar o WS
O primeiro passo a fazer é acessar o endereço do WebService que deseja acessar pelo browser e salvar o WSDL que descreve o serviço. Como exemplo, criaremos o client para acessar o WebService da Receita da Fazenda de São Paulo utilizado para enviar, consultar e retificar arquivos gerados pelo ECF da Nota Paulista.
O endereço deste webservice é https://www.nfp.fazenda.sp.gov.br/ws/arquivocf.asmx, ao acessa-lo pelo browser podemos notar o link que fornece o WSDL sobre o link "Service Description", e o salvamos com a extensão WSDL, mesmo que o browser não o forneça a extensão adequada.

Com o Axis 2 e o WSDL salvo, temos quase tudo o que precisamos para o Eclipse gerar as classes de acesso do WebService. O que falta agora é um "Dynamic Web Project", cuja versão do "Dynamic Web Module Version" não seja maior que 2.5. Também é necessário clicar no botão "Modify" da sessão de configuração e ativar as opções da imagem abaixo:
O Axis 2 apenas suporta até a versão 2.5, embora as classes que vamos gerar possam ser usadas tranquilamente em qualquer lugar, inclusive fora de projetos Web, como é o caso do BIS em que o acesso é feito pelo Core, e o código fica no .jar do EJB. Para isso crie um projeto temporário para o Axis usar, no fim do processo apagaremos ele.


Com o projeto criado, pressione CTRL+N, ou vá ao menu File -> New... -> Other e no Wizard que aparece encontre a opção "Web Service Client" e click em Next.

Na tela seguinte, indique o arquivo WSDL que salvamos do endereço do webservice. Na barra vertical a esquerda escolha apenas a opção "Assmble Client" para que o Axis se limite apenas em fazer as clases como queremos. Na sessão de configuração há três opções a serem definidas:
- Web Service Runtime: Deve escolher Axis2 ou o Eclipse usará outra engine para gerar as classes.
- Client Project: Se o eclipse não escolheu o projeto corretamente, clique e altere para o projeto web que criamos antes, pois será onde ele colocará as classes geradas.
- Client EAR project: Ele exige um EAR para gerar as classes (para o caso da opção de deploy ser escolhida na barra), para não misturar com o projeto do BISERP, clique nessa opção e na caixa de baixo onde deve escolher o projeto
- EAR digite um nome qualquer, ele criará o projeto do tipo EAR. Nos apagaremos ele posteriormente junto com o WebProject.
Tudo definido? Click em Finish.

Se tudo correu bem, temos agora no projeto no mínimo duas classes, sendo que uma dela deve ter o sufixo Stub. É através desta classe que acessaremos os métodos do WebService. Basta criar uma instância dela e nela devemos encontrar os métodos tal como é oferecido no webservice. Deixando a chamada completamente transparente para o desenvolvedor.
![]() |
|
![]() |
|