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: