- Criado por Igor Andrade, última alteração em 04/02/2021
Você está vendo a versão antiga da página. Ver a versão atual.
Comparar com o atual Ver Histórico da Página
« Anterior Versão 20 Próxima »
Para obtermos um recurso via SOAP, é necessário que exista um endpoint WSDL. Assim, para esse tutorial usaremos um serviço de consulta a informações a países, disponível gratuitamente: http://webservices.oorsprong.org/websamples.countryinfo/CountryInfoService.wso?WSDL
Pré requisitos
- Projeto do tipo mobile-web ou web criado. Caso haja dúvidas de como criar esse tipo de projeto acesse o link criar projeto.
Passos
Importar serviço SOAP
Clique com o botão direito sobre o nome do projeto e selecione a opção Importar no menu. Ao abrir a janela de importação, selecione a opção SOAP e finalize (Figura 1).
Figura 1 - Importando serviço web do tipo SOAP
Após clicar em finalizar, será aberta a janela de importação do SOAP, insira a URL do webservice desejado e clique em importar (Figura 2).
Figura 2 - Dados da importação
Insira a url do SOAP: endereço do serviço SOAP. Como exemplo, use esse endereço.
Endereços SOAP sempre terminam com a extensão ?WSDL.- Insira o pacote de destino: nome do pacote que será criado para armazenar os dados do serviço no projeto, caso deixe em branco será utilizado o nome do pacote do SOAP.
- Gerar API para Blocos: gera automaticamente os blocos para o desenvolvimento low code na IDE.
- Pacote de destino: pasta onde armazenará o pacote criado do webservice.
Após importar o webservice com sucesso, será exibido uma janela informando os pacotes Maven necessários que serão adicionados no arquivo POM, então clique em salvar para baixá-los (Figura 3).
Figura 3 - Lista de pacotes necessários para SOAP
Após carregar os pacotes e recompilar o projeto, a IDE gera um arquivo Java com as chamadas para as funções. Esse arquivo é gerado automaticamente, independente da arquitetura e/ou linguagem de programação em que o webservice foi desenvolvido (Figura 4).
Figura 4 - Arquivo gerado para as chamada das funções
Utilizando o serviço importado
Ao abrir/criar um bloco de programação do lado servidor, uma nova categoria é inserida com as funções de blocos importadas do SOAP. (destaque 1 da Figura 5)
O nome da categoria, métodos e parâmetros são os mesmos passados pelo serviço, por isso podem vir pouco legíveis. Nesse caso, utilize a ferramenta de Internacionalização para alterar esses nomes e deixá-los mais legíveis.
Na Figura 5, internacionalizamos o nome do método countryIntPhoneCode (DDI do País) e do seu parâmetro sCountryISOCodeVar (Sigla do País), mas não fizemos no nome da categoria: CountryInfoService (destaque 1 da Figura 5).
Figura 5 - Função que faz consulta do SOAP e alimenta os campos de uma página
Após o a requisição do cliente consumidor, o provedor do serviço retornará sua resposta em formato XML, como podemos ver abaixo. Por esse motivo será necessário usar o bloco "Obter campo do" para percorrer o caminho até o countryIntPhoneCodeResult do objeto e obter o seu valor.
<?xml version="1.0" encoding="UTF-8"?> <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> <soap:Body> <m:FullCountryInfoResponse xmlns:m="http://www.oorsprong.org/websamples.countryinfo"> <m:FullCountryInfoResult> <m:sISOCode>BR</m:sISOCode> <m:sName>Brazil</m:sName> <m:sCapitalCity>Brasilia</m:sCapitalCity> <m:sPhoneCode>55</m:sPhoneCode> <m:sContinentCode>AM</m:sContinentCode> <m:sCurrencyISOCode>BRL</m:sCurrencyISOCode> <m:sCountryFlag>http://www.oorsprong.org/WebSamples.CountryInfo/Images/Brazil.jpg</m:sCountryFlag> <m:Languages> <m:tLanguage> <m:sISOCode>por</m:sISOCode> <m:sName>Portuguese</m:sName> </m:tLanguage> </m:Languages> </m:FullCountryInfoResult> </m:FullCountryInfoResponse> </soap:Body> </soap:Envelope>
Na Figura 6 vemos o exemplo de uma tela que retorna o DDI de um pais baseado no seu código ISO.
.
Figura 6 - Resultado do exemplo
- Sem rótulos