首页 > 解决方案 > Glassfish 和 MongoDB 连接错误:NoClassDefFoundError

问题描述

我正在运行一个试图连接到 MongoDB 的 Glassfish 服务器。起初,我为服务器和 MongoDB 创建了单独的项目。所以现在我正在尝试合并这些项目,但似乎我尝试做的任何事情都会导致失败。

我得到的当前错误是:

2018-07-05T19:54:36.249+0200|Severe: java.lang.NoClassDefFoundError: org/bson/conversions/Bson

我很清楚错误发生在运行时,可能的原因是我的类路径。

目前,我将所有代码从一个项目复制到另一个项目,添加了 Maven 依赖项,然后发生以下情况:

没有错误的简化代码示例:

import org.bson.Document;
import org.bson.conversions.Bson;
import com.mongodb.BasicDBObject;
import com.mongodb.MongoClient;
import com.mongodb.client.FindIterable;
import com.mongodb.client.MongoCollection;
import com.mongodb.client.MongoDatabase;
import com.mongodb.client.MongoIterable;
import com.mongodb.client.model.Filters;
import com.mongodb.client.model.Updates;

public class MyClass{
    public static void main(String[]args){
        String ip = "127.0.0.1";
        int port = 27017;
        MongoClient mongoClient = new MongoClient(ip,port);

        /* Remaining code */

    }
}

有错误:

import org.bson.Document;
import org.bson.conversions.Bson;
import com.mongodb.BasicDBObject;
import com.mongodb.MongoClient;
import com.mongodb.client.FindIterable;
import com.mongodb.client.MongoCollection;
import com.mongodb.client.MongoDatabase;
import com.mongodb.client.MongoIterable;
import com.mongodb.client.model.Filters;
import com.mongodb.client.model.Updates;

public class MyClass{
   private MongoClient mongoClient;
   public MyClass(String ip, int port){
       mongoClient = new MongoClient(ip, port); // Error called here
   }

   /* Remaining code */

}

从 server.java 文件调用:

MyClass mc = new MyClass("127.0.0.1",27017);

我还尝试单独下载所有 bson jar 文件并将它们添加到项目中,但这没有效果......

标签: javamongodbglassfishruntime-erroreclipse-classpath

解决方案


对我来说可行的解决方案是删除整个项目并再次创建它。显然 Eclipse 有问题,或者我之前犯了一个错误并忘记了它。


推荐阅读