java - Glassfish 和 MongoDB 连接错误:NoClassDefFoundError
问题描述
我正在运行一个试图连接到 MongoDB 的 Glassfish 服务器。起初,我为服务器和 MongoDB 创建了单独的项目。所以现在我正在尝试合并这些项目,但似乎我尝试做的任何事情都会导致失败。
我得到的当前错误是:
2018-07-05T19:54:36.249+0200|Severe: java.lang.NoClassDefFoundError: org/bson/conversions/Bson
我很清楚错误发生在运行时,可能的原因是我的类路径。
目前,我将所有代码从一个项目复制到另一个项目,添加了 Maven 依赖项,然后发生以下情况:
如果我为我的 MongoDB 创建一个单独的 .java 文件并在 Glassfish 服务器所在的同一文件夹中运行它,它工作得非常好。
如果我运行服务器并尝试调用其他类的方法(稍作修改),则会出现上面的错误
没有错误的简化代码示例:
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 文件并将它们添加到项目中,但这没有效果......
解决方案
对我来说可行的解决方案是删除整个项目并再次创建它。显然 Eclipse 有问题,或者我之前犯了一个错误并忘记了它。
推荐阅读
- java - mybatis中的动态sql列表
- docker - 错误:构建映像并尝试在 Docker 上运行时,OCI 运行时创建失败
- gitlab-ci-runner - 在 gitlab 共享运行器上运行时,回车 (\r) 运算符不起作用
- javascript - 在javascript中首先显示加载的元素
- amazon-web-services - 无法从本地机器连接到 rds
- c - 为什么这段代码在输入和输出行之间打印一个随机字符?
- r - system2("open","/Users/folder (P)") 在 R 中导致“意外标记 `('”附近出现语法错误
- git - 为什么带有路径的 git checkout 不会影响 Pro Git 中声明的索引?
- python - 如何修复 vscode 中用于 python 脚本的运行问题
- java - Spring Framework bean 初始化未从数据库返回正确的数据