2015-03-13 30 views
0

我試圖從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的提供程序」

回答

0

經過對網絡的一些研究,我發現,我必須將javax.xml包添加到依賴關係我的耶拿包裝插件項目。現在它工作正常。