You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
This repository was archived by the owner on Sep 27, 2026. It is now read-only.
Utilizo a API em uma aplicação java, porém quando vou compilar o código ele acaba retornando um erro.
java.lang.NullPointerException: Cannot get property 'logradouro' on null object
at iprev.sicop.util.PostmonXmlServiceTest.Deve obter resultado correto do serviço de CEPs(PostmonXmlServiceTest.groovy:16)
Meu código:
public Result getResult(String cep) {
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
Document document;
try {
DocumentBuilder builder = factory.newDocumentBuilder();
URL url = new URL(
"http://api.postmon.com.br/v1/cep/" + cep + "?format=xml");
InputStream stream = url.openStream();
document = builder.parse(stream);
} catch (IOException | SAXException | ParserConfigurationException e) {
e.printStackTrace();
return null;
}
NodeList nodeList = document.getDocumentElement().getChildNodes();
Result result = new Result();
for (int i = 0; i < nodeList.getLength(); i++) {
Node node = nodeList.item(i);
if (node instanceof Element) {
NodeList childNodes = node.getChildNodes();
String content = node.getLastChild().getTextContent().trim();
switch (node.getNodeName()) {
case "bairro":
result.bairro = content;
break;
/*case "logradouro":
result.logradouro = content;
break;*/
case "cidade":
result.cidade = content;
break;
case "estado":
result.estado = content;
break;
case "estado_info":
for (int j = 0; j < childNodes.getLength(); j++) {
Node cNode = childNodes.item(j);
String content2 = cNode.getTextContent().trim();
if (cNode.getNodeName().equals("codigo_ibge"))
result.codigoEstado = content2;
}
break;
case "cidade_info":
for (int j = 0; j < childNodes.getLength(); j++) {
Node cNode = childNodes.item(j);
String content2 = cNode.getTextContent().trim();
if (cNode.getNodeName().equals("codigo_ibge"))
result.codigoCidade = content2;
}
break;
}
}
}
return result;
}
public class Result {
public String logradouro;
public String bairro;
public String cidade;
public String estado;
public String codigoEstado;
public String codigoCidade;
@Override
public String toString() {
return logradouro + ", " + bairro + ", " + cidade + "("
+ codigoCidade + ") - " + estado + "(" + codigoEstado + ")";
}
}
Utilizo a API em uma aplicação java, porém quando vou compilar o código ele acaba retornando um erro.
Meu código: