如何解决ClassNotFoundException:com.mongodb.connection.BufferProvider?

2022-09-02 19:55:27

我正在尝试编写简单的java代码,在控制台上显示MongoDB集合。我已经在我的类路径中添加了mongodb-driver-3.0.0.jar。

但是当我尝试执行代码时,它在数据库连接行处给我以下错误:

线程 “main” java.lang.NoClassDefFoundError 中的异常: com/mongodb/connection/BufferProvider at com.chintan.app.MongoDbJdbc.main(MongoDbJdbc.java:12) Caused by: java.lang.ClassNotFoundException: com.mongodb.connection.BufferProvider at java.net.URLClassLoader$1.run(Unknown Source) at java.net.URLClassClassLoader$1.run(Unknown Source) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(Unknown Source) at java.net.URLLoader.findClass(Unknown Source) atjava.lang.ClassLoader.loadClass(Unknown Source) at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) ...1更多

以下是我的代码片段:

public static void main(String[] args) 
    {
        MongoClient mongoClient = new MongoClient("localhost", 27017); //Exception

        @SuppressWarnings("deprecation")
        DB db = mongoClient.getDB("mydb");
        System.out.println("Database connection successfull.");
        ...
        ...
    }

这是什么问题?我需要在类路径中添加另一个jar还是存在一些版本问题?


答案 1

在 mongo 驱动程序页面上:http://mongodb.github.io/mongo-java-driver/3.0/driver/getting-started/installation-guide/#mongodb-driver

您将看到以下文本:

注意:mongodb-driver需要以下依赖项:bson和mongodb-driver-core

因此,您需要以下所有 jar 才能使此功能正常工作:

mongodb-driver-3.0.1.jar, mongodb-driver-core-3.0.1.jar, bson-3.0.1.jar

可以从这里下载:https://oss.sonatype.org/content/repositories/releases/org/mongodb/mongodb-driver/3.0.1/ https://oss.sonatype.org/content/repositories/releases/org/mongodb/mongodb-driver-core/3.0.1/ https://oss.sonatype.org/content/repositories/releases/org/mongodb/bson/3.0.1/


答案 2

下面的 java 驱动程序包含 BufferProvider 类:

http://mvnrepository.com/artifact/org.mongodb/mongo-java-driver/3.0.0