Java 使用dbpedia作为端点向jena(对于sparql)添加超时?
我想知道是否有一种方法可以使用Jena通过dbpedia进行sparql查询,并使用中给出的超时设置(如果您看到此页面,您可以看到有一种方法可以在那里设置超时),这是必需的,因为我想进行一个大查询,并且我已经尝试了好几次(通过页面)如果不设置超时,我无法得到结果(它总是事务超时异常)Java 使用dbpedia作为端点向jena(对于sparql)添加超时?,java,timeout,sparql,jena,dbpedia,Java,Timeout,Sparql,Jena,Dbpedia,我想知道是否有一种方法可以使用Jena通过dbpedia进行sparql查询,并使用中给出的超时设置(如果您看到此页面,您可以看到有一种方法可以在那里设置超时),这是必需的,因为我想进行一个大查询,并且我已经尝试了好几次(通过页面)如果不设置超时,我无法得到结果(它总是事务超时异常) 编辑:我使用java。要执行查询,我想您使用的是: QueryExecutionFactory.sparqlService(String service, Query query) 您可以尝试的一件事是: Qu
编辑:我使用java。要执行查询,我想您使用的是:
QueryExecutionFactory.sparqlService(String service, Query query)
您可以尝试的一件事是:
QueryEngineHTTP objectToExec=QueryExecutionFactory.sparqlService("http://dbpedia.org/sparql",YOUR_QUERY);
objectToExec.addParam("timeout","5000"); //5 sec
resultset=objectToExec.execSelect();
似乎QueryEngineHTTP
实现了QueryExecution
,它有一个addParam
方法。没有对该方法的描述,但我假设它向HTTP请求添加了一个参数
让我知道它是否有效
已编辑
要修复错误,实际上是另一种方法<代码>查询引擎http实现
查询执行
我会这样做:
String service = "http://dbpedia.org/sparql";
QueryExecution qexec = QueryExecutionFactory.create(query, service) ;
qexec.setTimeout(10, TimeUnit.MINUTES);
ResultSet results = qexec.execSelect() ;
String result = ResultSetFormatter.asText(results);
如果达到超时限制,则会抛出org.apache.jena.query.queryCanceledException。QueryExecutionYou中没有像addParam这样的方法。我是从另一个方向得到的。看看新版的答案,我认为是正确的。此外,考虑在StAcExoPad中接受一个上投票的事情,否则你会得到很低的接受率,人们不会花时间帮助你。只是一个建议。要接受答案,请单击答案旁边的V符号。这就是工作!非常感谢你。然而,我仍然想知道为什么他们必须在某处继承它:D