2012-03-30 6 views
1

Ich arbeite an einem Projekt, das die DBpedia-Datasets verwendet, und ich möchte über die von ihnen bereitgestellten SPARQL-Endpunkte eine Verbindung zu ihnen herstellen. Jetzt muss ich hinter dem Hochschulproxyserver arbeiten und ich kann meinen Code nicht bekommen, um mich mit den DBpedia sparql Endpunkten zu verbinden. Ich habe bisher versucht, in den Proxy-Einstellungen über System.getProperties() zu setzen, aber es funktioniert immer noch nicht und löst eine unbekannte Host-Ausnahme aus. Ich habe mein Code-Segment unten mit der Ausnahme verbunden, die geworfen wird. Jeder Vorschlag wäre willkommen.Verbinden mit DBpedia-Endpunkt hinter einer Proxy-Firewall

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 + " . }"); 
} 

Die Ausnahme, die ausgelöst wird, ist wie folgt:

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) 
.... 

So wie eine Fußzeile ich die sparql URL setzen versucht haben, http://dbpedia.org/snorql

Antwort

1

Vielleicht sollten Sie „http.proxyPort“ anstelle von "proxyPort". :-) Und System verfügt über eine setProperty (String-Schlüssel, String-Wert) -Methode, die Sie verwenden können.

+0

ahh, entschuldigung, auf der einen hat es ausprobiert und es funktioniert immer noch nicht. –

+1

Mein Vorschlag ist, Jena, DBPedia zu entfernen und einfach zu versuchen, URL und openConnection zu verwenden, um zu sehen, ob Sie Ihren Web-Proxy tatsächlich von einem Java-Programm verwenden können. Hast du das probiert? – castagna

+0

Yup, versuche zuerst eine einfache URL-Verbindung zu bekommen. Das Problem betrifft nicht DBpedia, sondern Ihre Proxy-Einstellungen. – cygri