Versões comparadas
Chave
- Esta linha foi adicionada.
- Esta linha foi removida.
- A formatação mudou.
Para obtermos um recurso via SOAP, é necessário que exista um endpoint WSDL. Assim, para esse tutorial usaremos um serviço que retorna algumas informações de países e obteremos o DDI do país informado, Esse endpoint SOAP está disponível gratuitamente em http://webservices.oorsprong.org/websamples.countryinfo/CountryInfoService.wso?WSDL
Pré requisitos
Criar novo- Projeto do tipo mobile-web ou web criado. Caso haja dúvidas de como criar esse tipo de projeto acesse o link
- .
Passos
Importar serviço SOAP
Clique com o botão direito sobre o nome do projeto e selecione a opção "Importar" no menu, na Janela Importar no menu. Ao abrir a janela de importação, selecione a opção SOAP e finalize . (Figura 1).
Image RemovedImage Added
Figura 1 - Importando um serviço web do tipo SOAP
Importar serviço SOAP
Nesse exemplo usaremos um serviço de consulta a informações de países, disponível gratuitamente no WSDL: http://webservices.oorsprong.org/websamples.countryinfo/CountryInfoService.wso?WSDL
Insira as informações na Janela Importar SOAP e clique em Importar. (Figura 2)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 1.2).
Image Added
Figura 1.2 - Dados da importação
Insira a url do SOAP
ou faça upload do XML: informe o endereço do serviço SOAP na caixa de texto ou utilize o botão Enviar arquivos para fazer upload do XML (exemplo de endereço SOAP).
Obs.: Endereços SOAP sempre terminam com a notação?WSDL
.- Enviar arquivos: abre a janela para a seleção do arquivo XML do SOAP.
- Limpar: remove o conteúdo do campo.
- 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 serviço SOAP.
- Gerar API para Blocos:
- gera automaticamente uma categoria de blocos de programação, convertendo as funções em blocos. Esses blocos serão exibidos no Editor de blocos servidor.
- Pacote de destino:
- pasta onde
- armazenará o pacote criado do
Image RemovedFigura 2 - Dados da importação
Após carregar os dados da URL será exibido os pacotes Maven necessários, clique em Salvar- webservice.
- Usuário autenticação - WSS: usuário de autenticação Web Security Service.
- Senha autenticação - WSS: senha de autenticação Web Security Service.
- Autenticação BASIC: essa opção deve ser selecionada sempre que for necessária a autenticação basic do serviço SOAP. Dessa forma, o usuário e a senha informados serão incluídos no header da requisição, no formato de codificação Base64, utilizando autenticação basic.
Nota |
---|
Caso o seu projeto esteja com o Modo Avançadohabilitado, 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. |
Dica |
---|
Após carregar os pacotes |
(o que pode levar um tempo) é necessário recompilar e reabrir 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 |
2). |
Nota | ||
---|---|---|
| ||
É necessário habilitar o Modo Avançado para que seja possível visualizar o arquivo. |
Image Added
Figura 2 Image RemovedFigura 4 - Arquivo gerado para com as chamada das funções Java
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 53).
Informações | ||
---|---|---|
| ||
Os nomes O nome da categoria, métodos e parâmetros são os mesmos passados pelo serviço, por isso podem vir abreviados, sem espaços, acentos e cedilhaspouco legíveis. Nesse caso é possível utilizar , utilize a ferramenta de Internacionalização (servidor) para alterar esses nomes e deixá-los mais legíveis. |
Informações |
---|
Como o objetivo deste tutorial é apresentar apenas a conversão das funções do serviço SOAP em Blocos de programação, não iremos detalhar as configurações da função de bloco (Figura 3) e view (Figura 4) usados nesse exemplo. Caso tenha dúvidas, veja em Bloco de programação e Editor de views. |
Na Figura 3, internacionalizamos o nome do método countryIntPhoneCode (
Informações geraisDDI do País) e do seu parâmetro sCountryISOCodeVar (Sigla do
paísPaís) (destaque 2 da figura 3), mas não
dofizemos no nome da categoria: CountryInfoService (destaque 1 da Figura 3).
Image Added
Image RemovedFigura 5 3 - Bloco Função que faz consulta do SOAP e alimenta os campos de uma página
No exemplo, informamos a sigla do país no bloco "Informações gerais do País" (fullCountryInfo) da API e filtramos pelo nome da capital e o seu código DDI. (Figura 5)
O retorno dessa função é o XML informado abaixo. Nesse exemplo pesquisamos pelo Brasil "BR", utilizamos Após 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 Objeto" , passando o XML obtido e informando o caminho do XML que possui a informaçãopara percorrer o caminho até o countryIntPhoneCodeResult do objeto e obter o seu valor.
Bloco de código | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||
<?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 resultado da consulta.4 vemos o exemplo de uma tela que retorna o DDI de um pais baseado no seu código ISO.
.
Image Added
Figura 4 Image RemovedFigura 6 - Resultado do exemplo