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/
- crie um projeto novo projeto
- Dê o nome ao projeto e informe a wsdl do webservice (no caso do exemplo do post anterior será: http://localhost:9876/welcome?wsdl)
- a esquerda do projeto teremos a interface e os métodos do serviço que o cliente pode consumir, clique no sinal +
- Agora dê dois cliques no request welcomeEn
- 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.
- Substitua a interrogação da aba que está na esquerda pelo seu nome
- Clique no botão submit request (uma seta verde)
- 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!!!!
nice!!!
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!!
Bom dia,
Excelente artigo, não abusando, existe como capturar a transação http que ele esta fazendo…?