簡體   English   中英

Jena Fuseki:創建數據集無效

[英]Jena Fuseki: Creation of Dataset does not work

我在本地主機上運行了Jena Fuseki數據庫,並且嘗試通過以下Java代碼創建新的數據集:

public static Dataset createDataset() {
    Dataset dataset = TDBFactory.createDataset("http://localhost:3030/testDataset");

    return dataset;
}

public static void main(String[] argv) {
    createDataset();
}

我的Java控制台顯示以下輸出:

Exception in thread "main" org.apache.jena.tdb.TDBException: Does not exist: /Users/Philip/IdeaProjects/Squirrel_copy/http:/localhost:3030/testDataset/
at org.apache.jena.tdb.setup.DatasetBuilderStd.error(DatasetBuilderStd.java:321)
at org.apache.jena.tdb.setup.DatasetBuilderStd.checkLocation(DatasetBuilderStd.java:139)
at org.apache.jena.tdb.setup.DatasetBuilderStd.build(DatasetBuilderStd.java:161)
at org.apache.jena.tdb.setup.DatasetBuilderStd.create(DatasetBuilderStd.java:90)
at org.apache.jena.tdb.StoreConnection.make(StoreConnection.java:208)
at org.apache.jena.tdb.StoreConnection.make(StoreConnection.java:215)
at org.apache.jena.tdb.transaction.DatasetGraphTransaction.<init>(DatasetGraphTransaction.java:65)
2018-01-21 17:08:03,092 [main] ERROR [o.a.j.info                    ] - <Does not exist: /Users/Philip/IdeaProjects/Squirrel_copy/http:/localhost:3030/testDataset/>
at org.apache.jena.tdb.sys.TDBMaker._create(TDBMaker.java:55)
at org.apache.jena.tdb.sys.TDBMaker.createDatasetGraphTransaction(TDBMaker.java:42)
at org.apache.jena.tdb.TDBFactory._createDatasetGraph(TDBFactory.java:89)
at org.apache.jena.tdb.TDBFactory.createDatasetGraph(TDBFactory.java:71)
at org.apache.jena.tdb.TDBFactory.createDataset(TDBFactory.java:55)
at org.apache.jena.tdb.TDBFactory.createDataset(TDBFactory.java:51)
at org.aksw.simba.squirrel.sink.RDFSink.createDataset(RDFSink.java:43)
at org.aksw.simba.squirrel.sink.RDFSink.main(RDFSink.java:49)

問題似乎是Java方法試圖將數據集存儲在該位置

/Users/Philip/IdeaProjects/Squirrel_copy/localhost:3030/testDataset/

使用本地文件系統不必要的前綴,並且我不知道如何刪除此前綴。

您使用的方法似乎文檔不足,但是如果您在此處查看類似的方法: https : //jena.apache.org/documentation/javadoc/tdb/org/apache/jena/tdb/TDBFactory.html# createDataset-org.apache.jena.tdb.base.file.Location-

簽名

public static Dataset createDataset(org.apache.jena.tdb.base.file.Location location)

則表明此工廠方法需要文件系統中目錄的路徑,而不是服務器正在偵聽的URL。 String -type參數的名稱為dir ,它還指示需要目錄的路徑。

如果要在正在運行的funkki服務器上創建新的數據集,請考慮使用fuseki的基於HTTP的管理協議,如下所述: https : //jena.apache.org/documentation/fuseki2/fuseki-server-protocol.html#數據集和服務 這不完全是一個SPARQL查詢,它使用http POST請求,但是它應該執行您想要的操作。

public void setup() throws IOException 
{ 
  ds = DatasetFactory.createTxnMem();
  server = FusekiServer.create().add("/ds", ds).build();
  server.start();
}

暫無
暫無

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

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