1
我正在使用DBpedia數據集的項目,我想通過它們提供的sparql端點遠程連接它們。現在我必須在大學代理服務器後面工作,並且無法讓我的代碼連接到DBpedia sparql端點。我到目前爲止都試圖通過System.getProperties()設置代理設置,但它仍然不起作用,並引發未知的主機異常。我在下面附加了我的代碼段以及拋出的異常。任何建議都會受到歡迎。連接到代理防火牆後的DBpedia端點
System.getProperties().put("proxySet","true");
System.getProperties().put("http.proxyHost", "http://username:[email protected]");
System.getProperties().put("proxyPort",8080);
String q= "SELECT ?p ?o WHERE { <http://dbpedia.org/resource/Mendelian_inheritance> ?p ?o . }";
Query query = QueryFactory.create(q);
QueryExecution qexec = QueryExecutionFactory.sparqlService("http://dbpedia.org/sparql", query);
ResultSet results = qexec.execSelect();
while (results.hasNext()) {
QuerySolution result = results.nextSolution();
RDFNode s = result.get("s");
RDFNode p = result.get("p");
RDFNode o = result.get("o");
System.out.println(" { " + s + " " + p + " " + o + " . }");
}
正被拋出的異常如下:
Exception in thread "main" HttpException: java.net.UnknownHostException: dbpedia.org: java.net.UnknownHostException: dbpedia.org
at com.hp.hpl.jena.sparql.engine.http.HttpQuery.execGet(HttpQuery.java:203)
at com.hp.hpl.jena.sparql.engine.http.HttpQuery.exec(HttpQuery.java:144)
at com.hp.hpl.jena.sparql.engine.http.QueryEngineHTTP.execSelect(QueryEngineHTTP.java:141)
at project6.Main.main(Main.java:53)
Caused by: java.net.UnknownHostException: dbpedia.org
at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:177)
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:366)
at java.net.Socket.connect(Socket.java:529)
at java.net.Socket.connect(Socket.java:478)
....
正如頁腳我試圖SPARQL URL設置爲http://dbpedia.org/snorql
啊,道歉,一個人試過它,它仍然沒有工作。 – 2012-04-01 17:30:25
我的建議是刪除Jena,DBPedia,並嘗試使用URL和openConnection來查看是否可以從Java程序實際使用您的Web代理。你嘗試過嗎? – castagna 2012-04-01 17:33:08
是的,試着首先得到一個簡單的URL連接。問題不在於DBpedia,而在於代理設置。 – cygri 2012-04-02 09:49:33