Um exemplo de como usar o wsimport:
wsimport -p br.com.yaw.ws -s src -d bin http://url.servico/xpto?wsdl
O parametro -p indica o pacote para a geração das classes java, -s o diretório dos fontes e -d conteúdo output (binário por exemplo). Por fim, o mais importante, a caminho do wsdl.
O código gerado não é complexo e depende só do jdk, sem a necessidade de outra API ou de algum container JEE. Simples assim, é só criar uma classe c/ main e com código acionando o webservice...
De forma geral o wsimport gera uma classe Service que representa o webservice no cliente, factory do Proxy que faz a comunicação c/ o EndPoint.
Um "pseudo-código" para consumir um catalogo de produtos seria:
CatalogoProdutosService service = new CatalogoProdutosService(); CatalogoProdutos proxy = service.getCatalogoProdutosPort(); List<Produtoto> produtos = proxy.getProdutos();
E se o EndPoint exige autenticação? Muito simples, o objeto Proxy (CatalogoProdutos é uma interface) também implementa BindingProvider que provê acesso ao protocolo e contexto vinculado. Através dela configuro o usuário e senha, o código ficaria:
CatalogoProdutosService service = new CatalogoProdutosService(); CatalogoProdutos proxy = service.getCatalogoProdutosPort(); //dados para o login ((BindingProvider)proxy).getRequestContext() .put(BindingProvider.USERNAME_PROPERTY, "jose"); ((BindingProvider)proxy).getRequestContext() .put(BindingProvider.PASSWORD_PROPERTY, "123"); List<Produtoto> produtos = proxy.getProdutos();
Para usar Web Service com Http(s) primeiro é necessário importar o certificado e alterar a url do wsdl.
http://twitter.com/edermag
http://www.yaw.com.br
2 comments:
Olá Eder, to tendo dificuldades de gerar as classes de consumo do webservice: https://webservice.comunika.com.br/WSComunika/WSReceive?wsdl
Estou tentando através do netbeans você sabe o que pode estar ocorrendo?
to tentando varios tutoriais disponíveis na internet mas até agora não obtive êxito
Ever wanted to get free Twitter Re-tweets?
Did you know you can get them AUTOMATICALLY & TOTALLY FOR FREE by getting an account on You Like Hits?
Post a Comment