Address finder by zip code in Java

1

Good morning, guys!

I have a zip code finder that is no longer working. When I use the URL passing my zip code it returns the query. Thank you in advance for the help!

Here's a sample link to test the direct query in the browser. Here is the result:

<webservicecep>
     <resultado>1</resultado>
     <resultado_txt>sucesso - cep completo</resultado_txt>
     <uf>SP</uf>
     <cidade>Marília</cidade>
     <bairro>Vila Romana</bairro>
     <tipo_logradouro>Rua</tipo_logradouro>
     <logradouro>Antônio Pinheiro Faro</logradouro>
</webservicecep>
public void encontraCEP() {

    CepWebService cepWebService = new CepWebService(cliente.getCep());

    if (cepWebService.getResultado() == 1) {

        cliente.setLogradouro(cepWebService.getLogradouro());
        cliente.setUf(cepWebService.getEstado());
        cliente.setCidade(cepWebService.getCidade());
        cliente.setBairro(cepWebService.getBairro());
        // cliente.setTipoEndereco(cepWebService.getTipoLogradouro());
    } else {

        FacesContext.getCurrentInstance().addMessage(
                null,
                new FacesMessage(FacesMessage.SEVERITY_ERROR,
                        "Cep não encontraro ou erro no servidor",
                        "Digite os dados manualmente"));
    }
}
public class CepWebService {

    private String estado = "";
    private String cidade = "";
    private String bairro = "";
    private String tipoLogradouro = "";
    private String logradouro = "";

    private int resultado = 0;

    @SuppressWarnings("rawtypes")
    public CepWebService(String cep) {

        try {
            URL url = new URL(
                    "http://cep.republicavirtual.com.br/web_cep.php?cep=" + cep
                            + "&formato=xml");

            Document document = getDocumento(url);

            Element root = document.getRootElement();

            for (Iterator i = root.elementIterator(); i.hasNext();) {
                Element element = (Element) i.next();

                if (element.getQualifiedName().equals("uf"))
                    setEstado(element.getText());

                if (element.getQualifiedName().equals("cidade"))
                    setCidade(element.getText());

                if (element.getQualifiedName().equals("bairro"))
                    setBairro(element.getText());

                if (element.getQualifiedName().equals("tipo_logradouro"))
                    setTipoLogradouro(element.getText());

                if (element.getQualifiedName().equals("logradouro"))
                    setLogradouro(element.getText());

                if (element.getQualifiedName().equals("resultado"))
                    setResultado(Integer.parseInt(element.getText()));
            }
        } catch (Exception ex) {
            ex.printStackTrace();
        }
    }

    public Document getDocumento(URL url) throws DocumentException {
        SAXReader reader = new SAXReader();
        Document document = reader.read(url);

        return document;
    }

    public String getEstado() {
        return estado;
    }

    public void setEstado(String estado) {
        this.estado = estado;
    }

    public String getCidade() {
        return cidade;
    }

    public void setCidade(String cidade) {
        this.cidade = cidade;
    }

    public String getBairro() {
        return bairro;
    }

    public void setBairro(String bairro) {
        this.bairro = bairro;
    }

    public String getTipoLogradouro() {
        return tipoLogradouro;
    }

    public void setTipoLogradouro(String tipoLogradouro) {
        this.tipoLogradouro = tipoLogradouro;
    }

    public String getLogradouro() {
        return logradouro;
    }

    public void setLogradouro(String logradouro) {
        this.logradouro = logradouro;
    }

    public int getResultado() {
        return resultado;
    }

    public void setResultado(int resultado) {
        this.resultado = resultado;
    }
}

I did the following test. I passed the zip directly to test and it is returning result in debug.

 public void encontraCEP() {

    CepWebService cepWebService = new CepWebService("17522350");

    if (cepWebService.getResultado() == 1) {

        cliente.setLogradouro(cepWebService.getLogradouro());
        cliente.setUf(cepWebService.getEstado());
        cliente.setCidade(cepWebService.getCidade());
        cliente.setBairro(cepWebService.getBairro());
        //cliente.setTipoEndereco(cepWebService.getTipoLogradouro());
    } else {

        FacesContext.getCurrentInstance().addMessage(null, new FacesMessage(FacesMessage.SEVERITY_ERROR,
                "Cep não encontraro ou erro no servidor",
                "Digite os dados manualmente"));
    }
}

MyCommandButtonissendingnulltothemethod:

<p:outputLabel for="cep" value="CEP" /> <h:panelGroup> <p:inputMask id="cep" mask="99999-999" size="9" value="#{cadastroClienteBean.cliente.cep}" /> <p:commandButton value="Buscar Endereço" style=" color: #D20005" > <f:ajax listener="#{cadastroClienteBean.encontraCEP}" render="@form" event="click" /> </p:commandButton> </h:panelGroup>     
asked by anonymous 03.09.2016 / 16:18

0 answers