【问题标题】:Connection to MongoDB with Java使用 Java 连接到 MongoDB
【发布时间】:2016-11-14 15:21:08
【问题描述】:

我正在尝试将我的 java 项目连接到在线 mongo 数据库。我遇到了一些问题,所以我决定先尝试连接本地 mongo DB,但我仍然遇到同样的问题。

我正在使用 3.3.0 版本的 3 个 mongodb 库(驱动程序、驱动程序异步和驱动程序核心)和 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),我仍然遇到相同的错误。

【问题讨论】:

标签: java mongodb bson


【解决方案1】:

解决方案:

在以下位置下载 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 的回答 :)

【讨论】:

    【解决方案2】:

    这是因为在类路径中缺少 CodecRegistriesCodecRegistry 所需的依赖类。为了解决/防止问题,而不是分别添加mongodb-drivermongodb-driver-corebson,以避免版本冲突和依赖管理不善,更喜欢包含旧版驱动程序,mongodb-drivermongodb-driver-corebson

    对于 Maven

    <dependency>
        <groupId>org.mongodb</groupId>
        <artifactId>mongo-java-driver</artifactId>
        <version>3.12.10</version>
    </dependency>
    
    

    对于 Gradle

    implementation 'org.mongodb:mongo-java-driver:3.12.10'
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-04-30
      • 2020-01-29
      • 1970-01-01
      • 2018-04-13
      相关资源
      最近更新 更多