我正在尝试将我的RDF模型加载到JENA SDB中。我已经完成了连接(我认为应该没问题)。 我不知道为什么,但它不能正常工作。我认为这是因为我已经导入到我的项目中的ARQ库,但我不知道。
这里是代码:
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();
}
这里的错误:
线程中的异常" main" java.lang.NoSuchMethodError:com.hp.hpl.jena.query.ARQ.getContext()Lcom / hp / hpl / jena / sparql / util / Context; 在com.hp.hpl.jena.sdb.SDB.initWorker(SDB.java:87) 在com.hp.hpl.jena.sdb.SDB。(SDB.java:61) 在com.hp.hpl.jena.sdb.store.StoreFactory。(StoreFactory.java:40) 在com.hp.hpl.jena.sdb.SDBFactory.connectStore(SDBFactory.java:117) 在CreateOntModel.main(CreateOntModel.java:94)
答案 0 :(得分:2)
NoSuchMethodError
表示您在运行时类路径(Eclipse构建路径)上有一组不一致的jar。确保项目构建路径中每个Jena jar只有一个副本。
在Eclipse中使用maven将自动管理依赖项。