Fuseki在5个请求后被阻止

时间:2018-11-01 10:52:08

标签: java jena fuseki

我有一个带有肥皂服务的应用程序,可与Jena TDB2和Fuseki一起使用。它可以正常工作,但是我的应用程序在第5次请求后从fuseki获取对象时阻塞。 这是代码

QueryExecution q = QueryExecutionFactory.sparqlService(serviceURI, query);
ResultSet results = q.execSelect();
Model model = ModelFactory.createDefaultModel();
while (resultSet.hasNext()) {
  QuerySolution querySolution = resultSet.next();
  RDFNode object = querySolution.get("?o");
  if (object instanceof Literal) {
    model.add(querySolution.getResource("?s"), model.createProperty(querySolution.getResource("?p").toString()),
        object);
  }
  if (object instanceof Resource) {
    if (querySolution.getResource("?p").getLocalName().equals("type")) {
      model.add(querySolution.getResource("?s"), model.createProperty(querySolution.getResource("?p").toString()),
          object);
    } else {
      model.add(querySolution.getResource("?s"), model.createProperty(querySolution.getResource("?p").toString()),
          model.createProperty("#" + querySolution.getResource("?o").getLocalName()));
    }
  }

那么什么会引起这个问题呢?我以为这是一些配置,但是我没有找到关于此的有用注释。

1 个答案:

答案 0 :(得分:3)

该代码无法关闭QueryExecution

对于外部资源(网络连接),最好是使用Java“ try-with-resource”

try(QueryExecution q = ...) { code }

这加快了OS资源的重用。