2014-06-26 63 views
0

我試圖將我的RDF模型加載到JENA SDB中。我已經完成了連接(我認爲它應該沒問題)。 我不知道爲什麼,但它不正確。我認爲這是因爲我已經導入到我的項目中的ARQ庫,但我不知道。將RDF模型加載到Jena SDB

這裏的代碼:

String RDF_FILE = "./prova_rules_M_rdf.owl"; 
    String className = "com.mysql.jdbc.Driver"; 
    String DB_URL = "jdbc:mysql://localhost:3306/prova_rules"; 
    String DB_USER = "root";       
    String DB_PASSWD = "";      


     // create store description 
     StoreDesc storeDesc = new StoreDesc(LayoutType.LayoutTripleNodesHash,DatabaseType.MySQL); 

     // load database driver 
     try { 
      Class.forName(className); 
      System.out.println("JDBC driver load successfully!"); 
     } catch (Exception e) { 
      e.printStackTrace(); 
     } 

     // create SDBConnection 
     SDBConnection sdbConnection = new SDBConnection(DB_URL,DB_USER,DB_PASSWD); 

     // connect to store 
     Store store = SDBFactory.connectStore(sdbConnection,storeDesc); 

     // connect store to dataset 
     Dataset dataset = SDBFactory.connectDataset(store); 

     // prepare the model 
     Model tmpModel = ModelFactory.createDefaultModel(); 
     FileManager.get().readModel(tmpModel,RDF_FILE,"OWL"); 
     System.out.println(tmpModel.size()); 

     // add the model into the dataset 
     dataset.getDefaultModel().add(tmpModel); 

     // all done ... hopefully 
     store.close(); 

    } 

在這裏的錯誤:在螺紋

異常 「主」 java.lang.NoSuchMethodError:com.hp.hpl.jena.query.ARQ.getContext() LCOM /馬力/ HPL /耶拿/ SPARQL/util的/關聯; at com.hp.hpl.jena.sdb.SDB.initWorker(SDB.java:87) at com.hp.hpl.jena.sdb.SDB。(SDB.java:61) at com.hp.hpl .jena.sdb.store.StoreFactory。(StoreFactory.java:40) at com.hp.hpl.jena.sdb.SDBFactory.connectStore(SDBFactory.java:117) at CreateOntModel.main(CreateOntModel.java:94)

回答

2

NoSuchMethodError表示您在運行時類路徑(Eclipse構建路徑)上存在不一致的jar集。確保在項目構建路徑中只有每個Jena jar的一個副本。

在Eclipse中使用maven將自動管理依賴關係。