【问题标题】:Connect java project to mongodb database将java项目连接到mongodb数据库
【发布时间】:2019-11-15 18:29:39
【问题描述】:

我正在尝试将 java 项目连接到我的 mongodb 数据库。但是,尽管我将 mongodb 驱动程序导入到项目中,但我仍然收到此错误:

线程“main”中的异常 java.lang.NoClassDefFoundError: com/mongodb/internal/connection/ServerAddressHelper

这是我的连接代码:

MongoClient mongoClient = new MongoClient(new 
MongoClientURI("mongodb://localhost:27017"));
MongoDatabase database = mongoClient.getDatabase("Etudiant");
MongoCollection collection = database.getCollection("EtudiantC");
System.out.println("connected!");

【问题讨论】:

  • 您使用的是哪个 mongo 驱动程序?你的依赖在 Gradle/Maven 中是什么样的?
  • 我尝试了从 3.0.0 到 3.9.1 的不同版本的驱动程序,但我的项目不包含任何 gradle 文件
  • 对于提供的代码示例,您使用的是什么版本?更高版本的语法略有不同,例如在 3.9.1 中,获取集合如下所示:“MongoCollection collection = database.getCollection("a_collection_name");”。您可以将完整的堆栈跟踪添加到您的原始查询中吗?

标签: java database mongodb database-connection


【解决方案1】:

NoClassDefFoundError 异常告诉您,当您运行的代码被编译时,该类就在那里,但现在您的应用程序的 classpath 中缺少它。

最可能的解释是您确实将 mongodb-driver.jar 添加到了类路径中,但也忘记了添加 its transitive dependencies。报告的缺失类 ServerAddressHelper 存在于 mongodb-driver-core.jar 中。

那么如何解决这个问题呢?使用 Maven 或 Gradle 等依赖管理系统自动下载所有必要的 jar-s,或者您需要通过其他方式(例如手动)执行此操作。看来您也可以改用一体式 mongo-java-driver.jar - 请参阅项目的官方 documentation 了解详细信息(在页面上搜索“Binaries”)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-10-08
    • 1970-01-01
    • 2014-04-21
    • 2022-09-24
    • 2019-06-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多