【问题标题】:java.lang.InstantiationError while running sparql query in jena在耶拿中运行 sparql 查询时出现 java.lang.InstantiationError
【发布时间】: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


    【解决方案1】:

    类路径上有多个版本。

    您链接到的信息是正确的 - BindingMap 变成了一个接口,所以如果您看到 java.lang.InstantiationError,这意味着调用代码来自 ARQ 的早期版本。

    检查您在类路径中没有超过一份 Jena 代码副本,并且在 JVM 的认可目录中没有副本。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-09-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-11-20
      • 1970-01-01
      • 2018-11-07
      相关资源
      最近更新 更多