Fuseki 在 5 个请求后阻塞

我有与 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()));

    }

  }

那么什么会导致这个问题呢?我认为这是一些配置,但我没有找到一些关于此的有用评论。


森栏
浏览 105回答 1
1回答

缥缈止盈

该代码不会关闭QueryExecution.对于外部资源(网络连接),最好使用 Java “try-with-resource”try(QueryExecution q = ...) { code }这加快了操作系统资源的重用。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java