【发布时间】:2013-05-13 23:25:03
【问题描述】:
亲爱的朋友们,我正在使用 Jena 框架和 RDF 数据库模型和 virtuoso 在我的项目中。我的jena版本是jena-core2.7.2和jena-arq-2.9.2
这是我的代码,它给了我错误
public JsonArray getCountryAutoSuggestData()
{
JsonArray countryArray = new JsonArray();
Model model = DataModel.getModel();
String mystr = " PREFIX plcontologyurl:<http://www.plcontology.com/#> "
+ " PREFIX rdf:<http://www.w3.org/1999/02/22-rdf-syntax-ns#> "
+ "select ?cn"
+ " where "
+ " { "
+ " ?d plcontologyurl:Country_Name ?cn . "
+ "}";
Query query = QueryFactory.create(mystr);
QueryExecution qe = QueryExecutionFactory.create(query, model);
QuerySolutionMap qMap = new QuerySolutionMap();
qe.setInitialBinding(qMap);
ResultSet rs = qe.execSelect();
while(rs.hasNext())
{
qMap = (QuerySolutionMap)rs.next();
countryArray.add(new JsonPrimitive(qMap.getLiteral("cn").getString()));
}
return countryArray;
}
错误是 java.lang.InstantiationError: com.hp.hpl.jena.sparql.engine.binding.BindingMap 在线 而(rs.hasNext())
我试图寻找问题,我找到了一个relevant discussion
他们说现在 com.hp.hpl.jena.sparql.engine.binding.BindingMap 不是一个简单的 类现在在这个版本中,但现在是一个接口。
如果是这样,那么如何在当前版本中运行 sparql 查询。 请根据我共享的代码举一个例子。 提前致谢。
【问题讨论】:
标签: java jakarta-ee rdf sparql jena