error - que es java null pointer exception
Inexpected NullPointerException al acceder a los resultados de una consulta (1)
Tengo excepción de puntero nulo en esta línea: array.add (soln.get (query.getProjectVars (). Get (i) .getVarName ()). AsResource (). ToSt ring ());
Rompe la expresión para encontrar el NPE. Una posibilidad es que no sea un URI, por lo que la asResource
es incorrecta.
Mejor podría ser
for(String var : query.getResultVars() {
Resource r = soln.getResource(var) ;
array.add(r.getURI()) ;
}
(cuidado con los nodos en blanco)
Esta pregunta ya tiene una respuesta aquí:
- DBpedia Jena Query devuelve null 1 respuesta
Tengo este código y no entiendo por qué obtengo una NullPointerException:
public static ArrayList<String> retrieveObject(String istance,String property){
String sparqlQueryString= "PREFIX rdf: <http://www.w3.org/1999/02/22-rdf- syntax-ns#> "+
"PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> "+
"PREFIX dbpedia: <http://dbpedia.org/resource/> "+
"PREFIX o: <http://dbpedia.org/ontology/> "+
"PREFIX dbprop: <http://dbpedia.org/property/>"+
"PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>" +
"select ?c"+
"where {<"+istance+"> "+property+" ?c.}";
ArrayList<String> array = new ArrayList<String>();
Query query = QueryFactory.create(sparqlQueryString);
QueryExecution qexec = QueryExecutionFactory.sparqlService("http://dbpedia.org/sparql", query);
ResultSet res = qexec.execSelect();
for(; res.hasNext();) {
QuerySolution soln = res.nextSolution();
for(int i=0;i<query.getProjectVars().size();i++){
array.add(soln.get(query.getProjectVars().get(i).getVarName()).asResource().toString());
}
}
return array;
}
Llamo al método de esta manera:
System.out.println(retrieveObject("http://dbpedia.org/resource/Immanuel_Kant","o:deathPlace"));