我試圖從eclipse插件中使用Jena庫。在Eclipse插件中使用Jena
如果我通常使用它,我可以寫這樣的代碼:
public static void main(String[] args) {
Query query = QueryFactory.create("SELECT * {} LIMIT 10");
// provider.disconnect(file);
QueryExecution qexec = QueryExecutionFactory.sparqlService(
"http://dbpedia.org/sparql", query);
switch (query.getQueryType()) {
case (Query.QueryTypeSelect): {
ResultSet results = qexec.execSelect();
ResultSetFormatter.out(System.out, results);
break;
}
default:
return;
}
}
但是,當我使用相同的代碼從一個Eclipse插件項目執行SPARQL查詢(我運行在另一個Eclipse插件運行時)它不起作用。 甚至沒有例外。調試器只是奇怪的東西。 下面是代碼它不工作(一ILaunchShortcut實現內它是一種方法):
public void launch(IFile file) {
MessageConsoleStream out = findConsole(CONSOLE_NAME).newMessageStream();
try {
provider.connect(file);
IDocument document = provider.getDocument(file);
String queryString = document.get();
provider.disconnect(file);
out.println(queryString);
Query query = QueryFactory.create(queryString);
// provider.disconnect(file);
QueryExecution qexec = QueryExecutionFactory.sparqlService(
"http://dbpedia.org/sparql", query);
switch (query.getQueryType()) {
case (Query.QueryTypeSelect): {
ResultSet results = qexec.execSelect();
ResultSetFormatter.out(out, results);
break;
}
default:
return;
}
} catch (CoreException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
在聲明Query query = QueryFactory.create(queryString);
調試進入類「EventTable.class」,不奇怪的東西。然後結束於「org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine」循環中。我不知道爲什麼以及發生了什麼。
我剛剛發現有某種錯誤處理正在進行。錯誤說:「parsers.FactoryConfigurationError:無法創建類javax.xml.parsers.DocumentBuilderFactory的提供程序」