Criando Cliente WebService SOAPUI

Olá Pessoal,

Mais um post dando continuidade ao post anterior de WebServices, vamos ver hoje como criar um cliente a partir de um serviço publicado. Para isso, vamos usar uma ferramenta SOAPUI que nos ajuda durante o desenvolvimento para testarmos nosso serviço. Será um post bem curto, mas complementar do vimos no anterior.

Lets go…

Usando SOAPUI para testar o serviço

            Com SOAPUI Tools é possivel testar o resultado do seu serviço facilmente sem precisar criar um cliente. A ferramenta tem várias outras funcionalidades, como testar carga do seu serviço, rodar test cases etc.  Vamos testar o nosso:

Faça o download: http://www.soapui.org/

  1. crie um projeto novo projeto
  2. Dê o nome ao projeto e informe a wsdl do webservice (no caso do exemplo do post anterior será: http://localhost:9876/welcome?wsdl)


  1. a esquerda do projeto teremos a interface e os métodos do serviço que o cliente pode consumir, clique no sinal +
  2. Agora dê dois cliques no request welcomeEn
  3. Ao abrir a tela, temos a esquerda temos o nosso webservice e uma “?” que onde diz que é preciso passar um valor para parâmetro. A direita será o resultado que teremos e que o cliente também terá ao consumir o serviço.

 

  1. Substitua a interrogação da aba que está na esquerda pelo seu nome
  2. Clique no botão submit request (uma seta verde)
  3. E veja o resultado a direita

Isso facilita durante o desenvolvimento, uma vez que não precisamos criar um cliente(de novo), por exemplo, para ver o resultado, já conseguimos testar de imediato com a ferramenta SOAPUI.

Vamos criar o cliente?

Criando o Cliente para consumir Webservice

            Para consumir um webservice, basta usar o seguinte comando:

wsimport -keep -p nomedodiretorio url do wsdl

Abra o prompt de comando e navegue até o src do projeto

wsimport -keep -p br.ws.cliente http://localhost:9876/welcome?wsdl

note: claro que há IDE que faz isso por você, basta informar a url do wsdl, mas para o post não quis prender a criação do cliente à uma ferramenta especifica.

Normalmente criamos um package no projeo que vai ter as classes referente ao serviço a ser consumido, vamos dizer que esse fosse um serviço da amazon, e para manter a organização eu criaria um package assim: br.com.camilolopes.wsimport.amazon uma vez que podemos ter outros websservices que serão consumidos. 

Para testar o webservice como cliente, criamos uma classe conforme a seguir:

note: antes de rodar se certifique que o serviço está publicado, ou seja, que a classe que faz o publish está rodando, uma vez que está ok, roda a classe abaixo. Isso mesmo, é em paralelo.

public class ClienteConsumerWs {

      public static void main(String[] args) {

      WelcomeImpl welcomeImpl = new WelcomeImplService().getWelcomeImplPort();

            String welcomeEn = welcomeImpl.welcomeEn(“Camilo Lopes”);

            System.out.println(welcomeEn);

      }

}

O resultado é imprimir no prompt Hello Camilo Lopes

A sacada que você também precisa ter é que pouco importa se seu projeto é um Java Project ou JEE Project. Enfim, o serviço está disponivel para ser consumido, o como você vai consumir não é preocupação do fornecedor, se você terá uma aplicação “parruda” JEE ou em JSE, isso é com você. No exemplo acima fizemos uma aplicação Java Application que imprime no console. Mas, não quero que você saia do post, achando que é isso que deve fazer no seu projeto. 🙂

Vou ficando por aqui e espero que tenham gostado do post, na semana que vem veremos um serviço completo porém com banco de dados.

See ya!!!!

3 comentários em “Criando Cliente WebService SOAPUI”

  1. Lembrando que com java7 também funciona.
    ….

    Um alteração que fiz foi utilizar *Welcome* como tipo de variável ao invés de *WelcomeImpl*, acredito ficar mais transparente ainda, caso tenha algum outro tipo de implementação para o mesmo serviço.

    Ótimo post!

    Parabéns!!

  2. Bom dia,

    Excelente artigo, não abusando, existe como capturar a transação http que ele esta fazendo…?

Deixe um comentário

O seu endereço de e-mail não será publicado.