Olá pessoal…
Qual a melhor forma de, usando o vraptor3, buscar um endereço a partir do CEP dentro de um formulario?
Utilizando o webservice dos Correios? A idéia é digitar o CEP e ja preencher os campos de endereço.
Tem diferença se a minha aplicação funcionar apenas numa intranet por exemplo ou caso for utilizar o webservice terei que ter a Internet no meu servdor?
Aguardo resposta.
Obrigado.
Att,
Leandro.
Vraptor3 + Busca CEP!
11 Respostas
Olá pessoal…
Qual a melhor forma de, usando o vraptor3, buscar um endereço a partir do CEP dentro de um formulario?
Utilizando o webservice dos Correios? A idéia é digitar o CEP e ja preencher os campos de endereço.
Tem diferença se a minha aplicação funcionar apenas numa intranet por exemplo ou caso for utilizar o webservice terei que ter a Internet no meu servdor?
Aguardo resposta.
Obrigado.
Att,
Leandro.
tb gostaria de saber… = )
você pode usar o webservice dos correios sim…
vc não precisa que a intranet inteira tenha acesso à internet, mas o servidor da sua aplicação precisa, se vc quiser fazer a consulta ao WS dos correios…
você pode usar o webservice dos correios sim…vc não precisa que a intranet inteira tenha acesso à internet, mas o servidor da sua aplicação precisa, se vc quiser fazer a consulta ao WS dos correios…
mas e quanto à segurança do servidor… pode ter algum impacto?
o fato de acessar o WS dos correios não traz impactos à segurança…
mas se vc só colocar o servidor na internet, sim… vc precisa fazer a segurança do servidor, como sempre…
se o seu servidor é windows vc pode ter mais problemas, só colocar um servidor linux (debian ou ubuntu) e é bem fácil deixar ele seguro, e pro java tanto faz
o fato de acessar o WS dos correios não traz impactos à segurança…mas se vc só colocar o servidor na internet, sim… vc precisa fazer a segurança do servidor, como sempre…
se o seu servidor é windows vc pode ter mais problemas, só colocar um servidor linux (debian ou ubuntu) e é bem fácil deixar ele seguro, e pro java tanto faz
Legal Lucas… obrigado pela resposta.
Conhece o webservice da RepublicaVirtual?
Será que consigo fazer uma requisição neste webservice para retornar um json com o resultado, logicamente utilizando o vraptor3?
Não conheço…
e vc consegue sim consumir o WS e retornar um JSON…
dependendo de como o WS foi feito é só fazer o mapeamento dos parametros e retorno dele para classes Java, e então gerar o json a partir dessas classes
Não conheço...e vc consegue sim consumir o WS e retornar um JSON...
dependendo de como o WS foi feito é só fazer o mapeamento dos parametros e retorno dele para classes Java, e então gerar o json a partir dessas classes
Consegui gerar o json.. agora só falta fazer o javascript no jsp para popular os inputs com os valores do json... mas isso ficara para amanha pois to com sono..
Foi facil... utilizei a classe ja pronta que tem no site da RepublicaVirtual dentro do arquivo cep_java_Tomaz_Lavieri.zip..
@Get
@Path("/produto/buscacep.json")
@LoggedIn
@Roles(roles = {"Administrador", "Visitante"})
public void buscaCepJson(String cep) {
WebServiceCep webServiceCep = WebServiceCep.searchCep("01311-100");
//A ferramenta de busca ignora qualquer caracter que não seja número.
//caso a busca ocorra bem, imprime os resultados.
if (webServiceCep.wasSuccessful()) {
System.out.println("Cep: "+webServiceCep.getCep());
System.out.println("Logradouro: "+webServiceCep.getLogradouroFull());
System.out.println("Bairro: "+webServiceCep.getBairro());
System.out.println("Cidade: "+webServiceCep.getCidade()+"/"+ webServiceCep.getUf());
//caso haja problemas imprime as exceções.
} else {
System.out.println("Erro número: " + webServiceCep.getResulCode());
System.out.println("Descrição do erro: " + webServiceCep.getResultText());
}
result.use(json()).from(webServiceCep).serialize();
}
}
Acessando direto a url /produto/buscacep.json volta o json:
{"webServiceCep": {
"resulCode": 1,
"resultText": "sucesso - cep completo",
"cep": "01311100",
"bairro": "Bela Vista",
"cidade": "São Paulo",
"logradouro": "Paulista",
"logradouroType": "Avenida",
"uf": "SP"
}}
AH só uma duvida.. quanto ao São Paulo vier com o caractere estranho.. será o encoding da aplicação? tem como setar isso na solicitação do json?
se vc setar o encoding do response para UTF-8, isso vai funcionar…
o jeito mais fácil é colocar isso no web.xml:
<context-param>
<param-name>br.com.caelum.vraptor.packages</param-name>
<param-value>UTF-8</param-value>
</context-param>
Acho que não funcionou não… já tinha no web.xml:
<context-param>
<param-name>br.com.caelum.vraptor.encoding</param-name>
<param-value>UTF-8</param-value>
</context-param>
Lucas, tem outra ideia do que posso fazer?
então, provavelmente o editor que vc usou pra abrir o json não levou em consideração o encoding…
tenta fazer uma request boba pra essa url usando o jQuery:
$.getJSON('/<contexto>/produto/buscacep.json', function(json) {
alert(json.webServiceCep.cidade);
});
e ve o que aparece no alert
então, provavelmente o editor que vc usou pra abrir o json não levou em consideração o encoding…tenta fazer uma request boba pra essa url usando o jQuery:
$.getJSON('/<contexto>/produto/buscacep.json', function(json) { alert(json.webServiceCep.cidade); });e ve o que aparece no alert
Ae Lucas Cavalcanti,
Funcionou… era o editor mesmo… o tal wordpad me enganou! :lol:
O alert apareceu com o “São Paulo” certinho.
Amanha vou montar o formulario com os input’s e tentar atualizar o value deles via javascript com a resposta do json… com certeza terei mais duvidas.
Obrigado.
Att,
Leandro.