我有以下代码向dbpedia服务器发出请求。
HttpQuery.urlLimit = 3000;
Query query = QueryFactory.create(queryString, Syntax.syntaxARQ);
QueryExecution qexec = QueryExecutionFactory.sparqlService(this.endPoint,query);
ResultSet resultSet = qexec.execSelect();
代码运行正常,但有时会引发以下异常。
HttpException: 404
at com.hp.hpl.jena.sparql.engine.http.HttpQuery.execGet(HttpQuery.java:349)
at com.hp.hpl.jena.sparql.engine.http.HttpQuery.exec(HttpQuery.java:295)
at com.hp.hpl.jena.sparql.engine.http.QueryEngineHTTP.execResultSetInner(QueryEngineHTTP.java:346)
at com.hp.hpl.jena.sparql.engine.http.QueryEngineHTTP.execSelect(QueryEngineHTTP.java:338)
这种例外的原因是什么?
答案 0 :(得分:2)
HTTP 404是标准HTTP错误,表示找不到请求的资源,即服务器找不到您要求的服务。
作为向所有人开放的公共服务,DBPedia被大量使用,并且由于各种原因经常中断,例如维护,硬件/软件中断,DoS攻击(无论是有意还是无意的错误查询)
根据SPARQL Endpoint Status for DBPedia,端点的可用性约为99%,这意味着它有时会无法使用。
答案 1 :(得分:2)
有很多可能的原因。我们没有足够的信息可以确定地适用于此。
正如@RobV所说,HTTP 404
是一个标准的HTTP错误,表明服务器(已运行)无法找到您要求的资源 - 但我们不知道您要求的资源是什么时候你做了但没有得到这个错误,所以无法进一步分析。
404
并不表示服务器已关闭,也不表示拒绝为您提供服务。这些条件(以及许多其他条件)将导致不同的error codes。