我有与 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 回答
缥缈止盈
TA贡献2041条经验 获得超4个赞
该代码不会关闭QueryExecution
.
对于外部资源(网络连接),最好使用 Java “try-with-resource”
try(QueryExecution q = ...) { code }
这加快了操作系统资源的重用。
添加回答
举报
0/150
提交
取消