2016-11-14 139 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他的答案:)