我正在尝试将我的java项目连接到在线mongo数据库。我遇到了一些问题所以我决定首先尝试连接本地mongo DB,但我仍然遇到同样的问题。
我正在使用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 :(得分:0)
解决方案:
下载最新版本的BSON: https://oss.sonatype.org/content/repositories/releases/org/mongodb/bson/ 要么 https://mvnrepository.com/artifact/org.mongodb/bson/
示例中提供的代码需要更新:使用MongoClient而不仅仅是Mongo。插入示例代码:
/**** 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的回答:)