Acessando Web Services no Talend

Introdução

A utilização de Web Services é comumente usada na integração e comunicação entre sistemas. Nesse artigo começaremos com uma breve introdução sobre Web Services, o que são, seu formato padrão e como podem ser utilizados, posteriormente, iremos aprender como realizar requisições a um Web Service utilizando o Talend com um exemplo prático usando um Web Service de captura de endereço através do CEP.

Para o desenvolvimento desse artigo iremos utilizar um Web Service pertencente ao pessoal do Byjg, que é um site que possui diversos serviços para diversas situações, dentre eles está o serviço de consulta de CEP, no qual podemos passar um CEP para ter como retorno o endereço, e vice-versa.

 

Web Services

Os Web Services foram criados para construir aplicações que funcionem como serviços na internet, ou seja, que estejam disponíveis para outras aplicações independente da plataforma utilizada no seu desenvolvimento, e isso é possível devido a padronização da linguagem utilizada na comunicação entre Web Services. Todo Web Service só envia e recebe dados no formato XML, um formato universal, onde uma aplicação pode ser desenvolvida em qualquer linguagem, que, ao enviar ou receber os dados eles são convertidos para o formato XML, possibilitando assim a comunicação. Todo Web Service ao ser disponibilizado deve informar sua descrição, para o usuário saber como acessar, qual seu formato, o que ele retorna, etc. Essa descrição é feita no formato XML, utilizando um padrão, o WSDL (Web Service Description Language).

 

Conhecendo o Web Service

Para ter acesso ao serviço de CEP precisaremos realizar o cadastro no site. Para acessar entre aqui logo na página inicial, no canto direito superior selecione a opção área do usuário.

Na tela que aparece no canto direito selecione a opção crie agora.

Proceda com o cadastro normalmente e depois efetue o login, na primeira tela aparecerá a mensagem para ativar o serviço, clique em CEP na barra superior, nessa tela terminaremos de preencher os dados e marcaremos a opção Ativar WebService de consulta de CEP e basta confirmar as modificações.

Depois de finalizado o cadastro aparecerá uma tela para teste do serviço, porém com interface gráfica, ou seja, o Web Service está disponível e essa interface utiliza o Web Service de CEP para realizar as requisições.

O Web Service de CEP possui duas operações principais ObterLogradouroAuth, na qual recebe 3 parâmetros, CEP, usuário e senha, e retorna o endereço, e a operação ObterCEPAuth, que recebe 5 parâmetros, logradouro, localidade, UF, usuário e senha, e retorna o CEP.

Acessando o Web Service no Talend

Agora vamos ao Talend. Primeiramente vamos criar um job, no canto esquerdo selecione com o botão direito a opção “Job Designs -> Create job” e vamos dar um nome ao nosso job, o chamaremos de “WS_CEP”. Na paleta de componentes vamos expandir a pasta Internet, selecionar e arrastar para o nosso job o componente tWebServiceInput, esse é o componente padrão para chamadas a Web Services, disponível na versão Talend Open Studio, os demais componentes referentes a Web Services são disponibilizados na versão Talend Integration Suite.

Prosseguindo, também na paleta de componentes, vamos expandir a pasta Logs & Errors e realizar o mesmo processo com o componente tLogRow. Clicaremos com o botão direito em cima do componente tWebServiceInput selecionar a opção Row -> Main e arrastar a seta para o tLogRow. Vamos aproveitar para mostrar o nome do nosso job, clique em cima da área do job, e nas opções do componente marque a opção Show subjob title, você também pode colocar o nome que irá aparecer.

Clicando duas vezes no tWebServiceInput apareceram as propriedades do componente, no campo WSDL retire o que vem por padrão e insira a url do serviço de CEP, disponível aqui.

No campo Method Name colocaremos o nome da operação a ser requisitada no Web Service, obterLogradouroAuth, e na última parte serão inseridos os parâmetros necessários para fazer a requisição, como disse anteriormente o Web Service precisa de 3 parâmetros, então clique 3 vezes na opção + que tem logo abaixo. A ordem inserida aqui será a mesma ordem enviada ao Web Service, então se o Web Service recebe os parâmetros CEP, login e senha, vamos colocar nessa ordem também no Talend. Feito Isso vamos criar o esquema que irá armazenar os dados provenientes do Web Service. Clique na opção Edit schema e adicione 1 coluna, vamos nomeá-la  de endereço, ao finalizar aparecerá uma janela perguntando se você deseja propagar as mudanças, clique em Yes.

Feito isso basta ir até a aba Run(Job) ou simplesmente pressionar F6 para executar o nosso job e ver o resultado.

Bom por enquanto é isso, o intuito desse artigo foi só dar uma breve introdução à chamada de Web Services no Talend, e isso abre um leque de opções bastante vasto, sendo que essa tarefa acaba sendo bastante simples de ser realizada utilizando o Talend, dependendo somente da necessidade e criatividade.

Um grande abraço a todos.

Anúncios

10 comentários sobre “Acessando Web Services no Talend

  1. Excelente artigo. Meus parabéns !

    Ficou muito fácil de entender.

    Quando puder, faça outro artigo com um web service um pouco mais complexo.

    Abraço.

  2. Boa tarde,

    Consegui consertar o erro anterior, mas agora está aparecendo outro, segue o erro abaixo, como posso arrumar?
    Starting job WS_CEP at 13:09 21/02/2011.

    [statistics] connecting to socket on port 3465
    [statistics] connected
    Exception in component tWebServiceInput_1
    java.net.ConnectException: Connection refused: connect
    at java.net.PlainSocketImpl.socketConnect(Native Method)
    at java.net.PlainSocketImpl.doConnect(Unknown Source)
    at java.net.PlainSocketImpl.connectToAddress(Unknown Source)
    at java.net.PlainSocketImpl.connect(Unknown Source)
    at java.net.SocksSocketImpl.connect(Unknown Source)
    at java.net.Socket.connect(Unknown Source)
    at java.net.Socket.connect(Unknown Source)
    at sun.net.NetworkClient.doConnect(Unknown Source)
    at sun.net.www.http.HttpClient.openServer(Unknown Source)
    at sun.net.www.http.HttpClient.openServer(Unknown Source)
    at sun.net.www.http.HttpClient.(Unknown Source)
    at sun.net.www.http.HttpClient.New(Unknown Source)
    at sun.net.www.http.HttpClient.New(Unknown Source)
    at sun.net.www.protocol.http.HttpURLConnection.getNewHttpClient(Unknown Source)
    at sun.net.www.protocol.http.HttpURLConnection.plainConnect(Unknown Source)
    at sun.net.www.protocol.http.HttpURLConnection.connect(Unknown Source)
    at sun.net.www.protocol.http.HttpURLConnection.getInputStream(Unknown Source)
    at com.sun.org.apache.xerces.internal.impl.XMLEntityManager.setupCurrentEntity(Unknown Source)
    at com.sun.org.apache.xerces.internal.impl.XMLVersionDetector.determineDocVersion(Unknown Source)
    at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(Unknown Source)
    at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(Unknown Source)
    at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(Unknown Source)
    at com.sun.org.apache.xerces.internal.parsers.DOMParser.parse(Unknown Source)
    at com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderImpl.parse(Unknown Source)
    at org.apache.axis.utils.XMLUtils.newDocument(XMLUtils.java:369)
    at org.apache.axis.utils.XMLUtils.newDocument(XMLUtils.java:420)
    at org.apache.axis.wsdl.symbolTable.SymbolTable.populate(SymbolTable.java:482)
    at org.apache.axis.wsdl.gen.Parser$WSDLRunnable.run(Parser.java:361)
    at java.lang.Thread.run(Unknown Source)
    [statistics] disconnected
    Job WS_CEP ended at 13:09 21/02/2011. [exit code=1]

    • Olá Eduardo,
      Primeiro perdão pela demora na sua resposta.
      Aparentemente o que está ocorrendo é que a conexão está sendo negada pelo pessoal do ByJG, o que pode ser feito é você testar o Web Service com seu usuário e senha, pode estar ocorrendo algum erro com seu usuário. Um erro parecido ocorreu com a Yasmim aqui do Talend Brasil, onde o usuário dela estava com problema. Para qualquer tipo de testes utilizando Web Services, recomendo o SoapUI. Nele você pode colocar a URL do Web Service e irá aparecer a operação para você efetuar o teste. O log é bem detalhado e o erro aparecerá explicitamente. Desta forma poderemos verificar se o erro é mesmo com seu usuário.
      Se você puder compartilhar conosco, agradecemos

      Abraço!

  3. Wahington, parabéns pelo post, muito esclarecedor.
    Estou estudando o Talend e não consegui fazer o job.
    Quando executo aparecem os erros “http não pode ser resolvido” e “Erro de sintaxe esperado no token”:”, , ”
    Como resolver esses erros?

    Valew

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair /  Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair /  Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair /  Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair /  Alterar )

Conectando a %s