[RESOLVIDO]Consumir WebService para consultar cep

Pessoal bom dia, estou pesquisando a um bom tempo mas sem sucesso, como eu faço pra conectar em um webservice de cep para obter a rua o numero logradouro etc?

Oi!

Estamos falando em um Web Service publico, como do Correios, por exemplo, ou simplesmente como você faria um Cliente em Java pra isso?
Abraços.

Oi!

Estamos falando em um Web Service publico, como do Correios, por exemplo, ou simplesmente como você faria um Cliente em Java pra isso?
Abraços.[/quote]

Fala Nel bom de mais ?

Então, nao entendo muito do assunto, mas seria um Web Service publico onde o usuario vai digitar o cep e realizar a consulta do logradouro, bairro etc.

Este webService parece que esta funcionando: http://www.bronzebusiness.com.br/webservices/wscep.asmx?WSDL

Só que nao sei o que fazer.

Oi!

Bom, se ele funciona corretamente e tras as informações que precisa, o mais simples é criar os clients para acessar ele.
E isso é muito fácil mesmo, principalmente para um WSDL estático.

Basta utilizar o wsimport e ser feliz. Podes inclusive configurar para usar isso via ant.
Aqui tem um exemplo da Caelum que demonstra como criar o servidor e o cliente, preocupa-se com a parte do cliente, verás que é bem simples!

O próprio Java se encarrega de fazer as devidas transformações, então, você sempre trabalha com Objeto :slight_smile:
Basicamente, para gerar as classes é o comando:

wsimport -keep -p seu.package http://www.bronzebusiness.com.br/webservices/wscep.asmx?WSDL

Qualquer coisa, poste ai!

Abraços!

Opa Nel, pelo que esta no site da caelum então bastava eu gerar o wsimport -keep -p br.gov.cvm.rfe.util http://www.bronzebusiness.com.br/webservices/wscep.asmx?WSDL

Quando eu executei o comando dentro da pasta bin do meu jdk falou que wsimport não é reconhecido como um comando =/

[quote=evertonsilvagomesjava]Opa Nel, pelo que esta no site da caelum então bastava eu gerar o wsimport -keep -p br.gov.cvm.rfe.util http://www.bronzebusiness.com.br/webservices/wscep.asmx?WSDL

Quando eu executei o comando dentro da pasta bin do meu jdk falou que wsimport não é reconhecido como um comando =/[/quote]

Não precisa roda-lo dentro da pasta bin, meu caro.
Você possui o JAVA_HOME instalado em sua máquina? Está apontando para o JDK correto?

Só para deixar como registro, fui gerar as classes desse Web Service e deu erro, está com falha esse WSDL.
Aconselho a pesquisar por outro colega, quando encontrar, poste aqui que tento novamente ok?!

Abraços.

Meu JAVA_HOME ta ok -> C:\Arquivos de programas\Java\jdk1.6.0_16

Nel, tem este: http://www.byjg.com.br/site/webservice.php/ws/cep?WSDL

Eu tentei executar nesse WSDL deu o seguinte erro no prompt:

[ERROR] undefined simple or complex type 'soapenc:array' line 2 of http://www.byjg.com.br/site/webservice.php/ws/cep?WSDL

[ERROR] undefined simple or complex type 'soapenc:arrayType' line 2 of http://www.byjg.com.br/site/webservice.php/ws/cep?WSDL

Isso é erro no WSDL?

[quote=evertonsilvagomesjava]Eu tentei executar nesse WSDL deu o seguinte erro no prompt:

[ERROR] undefined simple or complex type 'soapenc:array' line 2 of http://www.byjg.com.br/site/webservice.php/ws/cep?WSDL

[ERROR] undefined simple or complex type 'soapenc:arrayType' line 2 of http://www.byjg.com.br/site/webservice.php/ws/cep?WSDL

Isso é erro no WSDL?

[/quote]

Sim, é erro no WSDL.
Tem cidadão que me joga o WSDL com referência a XSD e não joga o XSD no servidor, ai tu tenta gerar as coisas e cadê? :evil:
Mas ao que vejo o wsimport ai está ok! :slight_smile:

Vou ver se acho algo também, então.
Abraços.

[quote=nel][quote=evertonsilvagomesjava]Eu tentei executar nesse WSDL deu o seguinte erro no prompt:

[ERROR] undefined simple or complex type 'soapenc:array' line 2 of http://www.byjg.com.br/site/webservice.php/ws/cep?WSDL

[ERROR] undefined simple or complex type 'soapenc:arrayType' line 2 of http://www.byjg.com.br/site/webservice.php/ws/cep?WSDL

Isso é erro no WSDL?

[/quote]

Sim, é erro no WSDL.
Tem cidadão que me joga o WSDL com referência a XSD e não joga o XSD no servidor, ai tu tenta gerar as coisas e cadê? :evil:
Mas ao que vejo o wsimport ai está ok! :slight_smile:

Vou ver se acho algo também, então.
Abraços.[/quote]

Entendi, vou procurar mais WSDL aqui, vlw Nel!

Nel veja o que foi gerado pra mim agora, porém não foi criada nenhuma classe no meu package informado.

Segue a imagem


Tens certeza?
Se tu usares o comando wsimport estando no C: por exemplo, o package será gerado no C:…entende?

Gerei aqui sem nenhum problema, segue em anexo as classes geradas, dentro de um zip. :wink:

Vc tentou usar? Eu consegui gerar as classes \o/.

Dando time out quando instancio o service

[code]CEPWebService service = new CEPWebService();

	CEP cep = service.getCEPWebServiceSoap().consultaCEP("32280550");

	System.out.println(cep);[/code]

[quote=evertonsilvagomesjava]Vc tentou usar? Eu consegui gerar as classes \o/.

Dando time out quando instancio o service

[code]CEPWebService service = new CEPWebService();

	CEP cep = service.getCEPWebServiceSoap().consultaCEP("32280550");

	System.out.println(cep);[/code][/quote]

Oi!
Tentei usar não.

Tem Firewall e/ou Proxy ai?
Senão depois eu tento aqui também.

Cara…show :slight_smile:

Consegui usar e olha os resultados:

[code]CEPWebService service = new CEPWebService();
CEP cep = service.getCEPWebServiceSoap().consultaCEP(“32280550”);

System.out.println("Cidade: " + cep.getCidade());
System.out.println("Bairro: " + cep.getBairro());
System.out.println("Logradouro: " + cep.getLogradouro());[/code]

Resultados:

Cidade: CONTAGEM Bairro: NOVO RIACHO Logradouro: RIO MARABAS

Certo? :smiley:

Pocha nel é isso mesmo que preciso, setei os properties porcausa do proxy e parou de da o timeout só que agora olha á Exception que está dando =/

[code] System.getProperties().put(“proxySet”, “true”);
System.getProperties().put(“http.proxyHost”, “192.168.0.10”);
System.getProperties().put(“http.proxyPort”, “3128”);
System.getProperties().put(“http.proxyUser”, “everton.gomes”);
System.getProperties().put(“http.proxyPassword”, “teste123”);

	CEPWebService service = new CEPWebService();
			
	CEP cep = service.getCEPWebServiceSoap().consultaCEP("32280550");

	System.out.println(cep.getBairro());
	System.out.println(cep.getCidade());
	System.out.println(cep.getLogradouro());
	System.out.println(cep.getTipoLogradouro());[/code]

Exception

Exception in thread "main" java.lang.NoClassDefFoundError: com/sun/xml/messaging/saaj/soap/AttachmentPartImpl at com.sun.xml.ws.message.AttachmentUnmarshallerImpl.<clinit>(AttachmentUnmarshallerImpl.java:55) at com.sun.xml.ws.client.sei.ResponseBuilder$DocLit.readResponse(ResponseBuilder.java:500) at com.sun.xml.ws.client.sei.SyncMethodHandler.invoke(SyncMethodHandler.java:242) at com.sun.xml.ws.client.sei.SyncMethodHandler.invoke(SyncMethodHandler.java:210) at com.sun.xml.ws.client.sei.SEIStub.invoke(SEIStub.java:103) at $Proxy29.consultaCEP(Unknown Source) at br.gov.cvm.rfe.web.util.End.main(End.java:31) Caused by: java.lang.ClassNotFoundException: com.sun.xml.messaging.saaj.soap.AttachmentPartImpl at java.net.URLClassLoader$1.run(Unknown Source) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) ... 7 more

Era um .jar Nel que tava faltando hehe, muito obrigado pela ajuda Nel, ajudou de mais cara!

Show de bola brother!
Eu trabalhei/trabalho com WS e acho bem interessante essa tecnologia.
Qualquer coisa é só falar, podes mandar MP inclusive :smiley:

Se o problema está resolvido, só adicione isso ao tópico, beleza champz?
Abraços e sucesso!

Show de bola brother!
Eu trabalhei/trabalho com WS e acho bem interessante essa tecnologia.
Qualquer coisa é só falar, podes mandar MP inclusive :smiley:

Se o problema está resolvido, só adicione isso ao tópico, beleza champz?
Abraços e sucesso![/quote]

Adicionei la o [Resolvido], muito obrigado Nel, precisando eu pedirei ajuda \o/ kkk, valeu!

CARACA, Nel !!!

Te devo meia dúzia de cervejas depois dessa !!!

Abraço e muito obrigado