【问题标题】:Having trouble connecting to MongoDB with Java使用 Java 连接到 MongoDB 时遇到问题
【发布时间】:2019-03-14 21:08:30
【问题描述】:

我正在尝试编写一个将连接到 MongoDB 数据库的 Java 程序。我已经有了我要访问的数据库的 IP 地址、端口、userDB、用户名和密码。

我将 mongodb-driver-3.0.0.jar 文件设置为 Eclipse 中的引用库。我在 src 文件夹中创建了一个 MongoDBDriver.java 文件(如下所示):

import com.mongodb.MongoClient;

public class MongoDBDriver {

public static void main(String[] args) {

    MongoClient client = new MongoClient("10.66.80.152", 27017);
    String connectPoint = client.getConnectPoint();
    System.out.println(connectPoint);
    client.close();
  }

}

当我运行脚本时,我收到以下错误消息:

Exception in thread "main" java.lang.NoClassDefFoundError:     
com/mongodb/connection/BufferProvider
at MongoDBDriver.main(MongoDBDriver.java:7)
Caused by: java.lang.ClassNotFoundException:  
com.mongodb.connection.BufferProvider
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)
... 1 more

那么,我做错了什么,我该如何解决?

【问题讨论】:

标签: java mongodb


【解决方案1】:

异常意味着您的类路径不匹配。 我创建了连接 java 和 mongodb 并执行一些 CURD 操作的小应用程序。

eMongoDB-Java-app 我认为连接数据库会是更好的解决方案。

【讨论】:

  • 谢谢!我刚刚下载了该应用程序,它看起来很棒,但我仍然无法访问数据库。我在 MongoDBManager.java 文件中添加了以下代码:// connect to mongodb server mongo = new MongoClient("10.66.80.152", 27017); // connect with the database mongoMgr = mongo.getDB("mbe"); boolean auth = mongoMgr.authenticate("mbeuser", "password".toCharArray()); if(auth){ System.out.println("authorized"); } else { System.out.println("not authorized"); }
  • 我收到以下错误消息:com.mongodb.MongoException: not authorized for query on mbe.user
  • 您是否检查了“mbeuser”用户权限?
【解决方案2】:

MongoClient 没有方法 getConnectPoint(),类 Mongo 有。

你可以阅读官网,它会帮助你。mongodb official website java tutorial

【讨论】:

    猜你喜欢
    • 2020-10-01
    • 1970-01-01
    • 1970-01-01
    • 2022-12-07
    • 1970-01-01
    • 2011-07-13
    • 2022-11-04
    • 1970-01-01
    • 2020-02-16
    相关资源
    最近更新 更多