2016-11-14 135 views
0

我正嘗試將我的java項目連接到在線mongo數據庫。我遇到了一些問題,所以我決定先嚐試連接本地的mongo數據庫,但我仍然遇到同樣的問題。使用Java連接到MongoDB

我使用3個mongodb庫(驅動程序,驅動程序異步和驅動程序核心),3.3.0版本和bson庫,3.2.2版本。

當我啓動我的「HelloWorld示例」,從這裏複製:http://www.mkyong.com/mongodb/java-mongodb-hello-world-example/

我有以下錯誤:

Exception in thread "main" java.lang.NoClassDefFoundError: org/bson/codecs/IterableCodecProvider at com.mongodb.MongoClient.<clinit>(MongoClient.java:84) at mainClass.main(mainClass.java:24) Caused by: java.lang.ClassNotFoundException: org.bson.codecs.IterableCodecProvider at java.net.URLClassLoader.findClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) ... 2 more

注:該示例代碼使用它現在已經過時的方法,但即使將代碼替換爲新版本(使用MongoClient),我仍然有相同的錯誤。

+0

改變你的BSON庫 – Veeram

+0

3.2.3版本,你知道我在哪裏可以下載? – VinhasK

+0

https://oss.sonatype.org/content/repositories/releases/org/mongodb/。將所有thr依賴關係更新爲3.3.0 – Veeram

回答

0

解決方案:

下載BSON上的最後一個版本: https://oss.sonatype.org/content/repositories/releases/org/mongodb/bson/https://mvnrepository.com/artifact/org.mongodb/bson/

的代碼提供的例子需要更新:使用MongoClient而不只是蒙戈的。插入示例代碼:

/**** Connect to MongoDB ****/ 
     String uri = <URI of your mongo DB> 
     MongoClientURI mgURI = new MongoClientURI(uri); 
     MongoClient mongo = new MongoClient(mgURI); 
     /**** Get database ****/ 

     MongoDatabase dataBase = mongo.getDatabase("databaseName"); 
     MongoCollection<Document> userCollection = dataBase.getCollection("CollectionName"); 
     Document document = new Document(); 
     document.put("key1", value1); 
     document.put("key2", "value2"); 
     // insert into database 
     userCollection.insertOne(document); 

感謝Veeram他的答案:)