簡體   English   中英

在Eclipse插件中使用Jena

[英]Using Jena in Eclipse Plugin

我正在嘗試從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的提供者”

在網上進行了一些研究之后,我發現必須將javax.xml包添加到我的Jena Wrapper插件項目的依賴項中。 現在可以正常工作了。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM