当前位置: 首页 > 知识库问答 >
问题:

使用MongoDB驱动程序时的java.lang.NoClassDefFoundError

姜森
2023-03-14

我试图使用servlet上的Java驱动程序连接到托管在mlab上的MongoDB数据库。

import org.bson.Document; 
import com.mongodb.MongoClient;
import com.mongodb.MongoClientURI;
import com.mongodb.client.MongoCollection;
import com.mongodb.client.MongoDatabase;

public class MongoConnection {

    protected void connectToMongo(String loc){

        String dbName = "readings";
        String collection = "data";

        MongoClientURI uri = new MongoClientURI("mongodb://user:pass@ds143109.mlab.com:43109/readings");
        MongoClient client = new MongoClient(uri);
        MongoDatabase db = client.getDatabase(dbName);

        MongoCollection<Document> readings = db.getCollection(collection);

        Document doc = Document.parse(loc);

        readings.insertOne(doc);

        client.close();
    }
}

问题是我得到以下错误:java.lang.noClassDefFounderRor:com/mongoDb/mongoClientURI

这样做对吗?我还应该做什么/代替吗?

共有1个答案

解高昂
2023-03-14

您有java.lang.NoClassDefFounderRorro-这意味着您的类在运行时(而不是在构建/编译时)丢失。因此,您应该打开项目的“运行配置”对话框(项目上下文菜单->“运行为”->“运行配置...”)并确保在Classpath选项卡中以某种方式列出了bson-xxx.jar、mongoDB-driver-xxx.jar和mongoDB-driver-core-xxx.jar。是的,就像Xavier Bouclet所说的--如果您在application server下运行它--这个JAR应该被添加到服务器的类路径中。

 类似资料:
  • 问题内容: 我正在尝试使用servlet上的Java驱动程序连接到mlab上托管的MongoDB数据库。 问题是我遇到以下错误: 我看了一个答案(如何解决ClassNotFoundException:com.mongodb.connection.BufferProvider?),该答案向我强调了我需要其他jar,自从我下载了这些jar之后,仍然出现此错误。 我正在使用Eclipse并将这三个jar

  • 问题内容: 我们当前的连接配置如下所示: 并且已在当前版本(源代码)中弃用,并将被删除:“此方法无法替代。使用connectTimeout属性控制连接超时。” 我认为重试和连接超时是两回事。有谁知道为什么改变了它以及它有什么(内部)含义? 问题答案: 关于autoConnectRetry的含义有很多困惑。大多数人认为这意味着,如果操作由于IOException而失败,驱动程序将重试该操作,直到ma

  • 我正在处理以下堆栈的解决方案: ASP. NET Core .NET核心 MongoDB ...使用此驱动程序与数据库通信:https://www.nuget.org/packages/MongoDB.Driver.Core/ ...版本2.4.1 我试图像这样实例化MongoClient: 但最后一句话错误地说: “系统”类型的异常。MongoDB中出现MissingMethodExceptio

  • 通过使用MongoDB和Java驱动程序,我有一个用户集合,我想根据他们的ObjectId进行查询(总体情况:我从ObjectId推断出对象的创建时间戳)。 问题是,用ObjectId查询似乎不起作用:我总是没有结果。为了测试的目的,我在搜索查询中硬编码了数据库中现有用户的ObjectId,只是为了确保我能得到结果: {“_id”:ObjectId(“565ef85ee4b0a4db3c2fc96

  • 如何在mongo db中创建一个可以公开集合中所有文档的视图?我使用了以下代码: 我正在尝试用管道空列表,但它不工作。你能帮忙吗?

  • 问题内容: 我想对MongoDB驱动程序作出承诺。我写了以下代码: 您是否知道为什么在调用该方法时为什么没有输出: 问题答案: 手动散布API是很危险的,我建议采取以下措施: 有了Bluebird的承诺,它看起来就像: