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 4 Próxima »

SOAP (Simple Object Access Protocol, hoje não é mais utilizado o acrônimo por não se tratar de um protocolo de acesso a objetos) baseia-se na invocação remota de um método de outro sistema, especificando o endereço do componente, o nome do método e os seus argumentos. Estes dados são formatados em XML com determinadas regras e enviados normalmente por HTTP (ou outros protocolos de comunicação) para o requisitante. Não define ou impõe qualquer semântica, quer seja o modelo de programação, quer seja a semântica específica da implementação. Este aspecto é extremamente importante, pois permite que possa haver comunicação entre cliente e servidor, mesmo que tenham sidos desenvolvidos em arquiteturas e/ou linguagens diferentes.

Este protocolo baseado em XML consiste de três partes: um envelope, que define o que está na mensagem e como processá-la, um cabeçalho com conjunto de regras codificadas para expressar instâncias dos tipos de dados definidos na aplicação, e um body com convenções para representar chamadas de procedimentos e respostas. (Figura 1)


Figura 1 - Estrutura do SOAP

Passos

Com o projeto criado e aberto, clique com o botão direito sobre o nome do projeto e selecione a opção "Importar" no menu, na Janela Importar, selecione a opção SOAP e finalize. (Figura 2)


Figura 2 - Importando um serviço web do tipo SOAP

1. Campos de importação do 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 3)

  1. Insira a url do SOAP: Endereço do serviço soap, normalmente utilizado o WSDL.

  2. Insira o pacote de destino: Nome do pacote que será criado para armazenar os dados do serviço no projeto.
  3. Gerar API para Blocos: Gera automaticamente os blocos para o desenvolvimento RAD ou Low code na IDE.
  4. Pacote de destino: Diretório onde receberá o pacote criado do serviço web.

Figura 3 - Dados da importação.

 

Após carregar os dados da URL será exibido os pacotes Maven necessários, clique em Salvar para baixá-los. (Figura 4)

Figura 4 - Lista de pacotes necessários para esse serviço web 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, não sendo baixado junto com a importação do serviço, visto que o serviço web pode ter sido desenvolvido em qualquer arquitetura e/ou linguagem de programação. (Figura 5)

Figura 5 - Arquivo gerado para as chamada das funções.

2. Utilizando o serviço importado

Ao abrir/criar um bloco de programação do lado servidor uma nova categoria é inserida com as funções importadas do SOAP. (Figura 6, circulado em vermelho)

Observação

Os nomes 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 cedilhas. Nesse caso é possível utilizar a ferramenta Editor de Internacionalização para alterar esses nomes e deixá-los mais legíveis.

Na Figura 6, podemos ver que foi internacionalizados o nome do método (Informações gerais do País) e do seu parâmetro (Sigla do país), mas não do nome da categoria: CountryInfoService.


Figura 6 - Bloco 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 6)

O retorno dessa função é o XML informado abaixo. Nesse exemplo pesquisamos pelo Brasil "BR", utilizamos o bloco "Obter campo do Objeto", passando o XML obtido e informando o caminho do XML que possui a informação.

 

Retorno do serviço
<?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 7 vemos o resultado da consulta e retorno das informações.

Figura 7 - Resultado do exemplo 

 

 

Nesta página

 

  • Sem rótulos