gpt4 book ai didi

java - mongoDB:java.lang.InknownClassChangeError:实现类

转载 作者:行者123 更新时间:2023-12-01 11:12:25 24 4
gpt4 key购买 nike

我正在尝试使用不同的数据库编写一个小测试程序。 MongoDB 就是其中之一,直到上周五它都工作得很好,尽管我没有更改 MongoDB 类的 java 代码中的任何内容。

系统:我使用带有 mongo-org 包的 ubuntu 14.04 VM。 mongo的版本是3.0.5。

我还在虚拟机上运行 MariaDB、PostgreSQL 和 Cassandra。作为客户,我有 Windows 7 和 Eclipse。

连接和测试与其他 3 个数据库完美配合。

我也可以在 ubuntu 上运行“mongo”客户端。

但是当我尝试 MongoDB 的 Java 测试时,我不断收到此错误:

Exception in thread "main" java.lang.IncompatibleClassChangeError: Implementing class
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(Unknown Source)
at java.security.SecureClassLoader.defineClass(Unknown Source)
at java.net.URLClassLoader.defineClass(Unknown Source)
at java.net.URLClassLoader.access$100(Unknown Source)
at java.net.URLClassLoader$1.run(Unknown Source)
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
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)
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(Unknown Source)
at java.security.SecureClassLoader.defineClass(Unknown Source)
at java.net.URLClassLoader.defineClass(Unknown Source)
at java.net.URLClassLoader.access$100(Unknown Source)
at java.net.URLClassLoader$1.run(Unknown Source)
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
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)
at com.mongodb.MongoClientOptions$Builder.<init>(MongoClientOptions.java:52)
at com.mongodb.MongoClient.<init>(MongoClient.java:126)
at com.mongodb.MongoClient.<init>(MongoClient.java:115)
at de.motza.database.impl.DatabaseImplMongoDB.connect(DatabaseImplMongoDB.java:197)
at de.motza.database.impl.DatabaseImplMongoDB.instantiate(DatabaseImplMongoDB.java:207)
at de.motza.test.History_Log.testNewDatabase(History_Log.java:86)
at de.motza.test.History_Log.main(History_Log.java:66)

发生异常的java类部分:

private static String dbHost = "10.158.251.251";
private static int dbPort = 27017;
private static String dbName = "history_log";
private static MongoClient mongoClient = null;
[...]
@Override
public void connect() {
try {
mongoClient = new MongoClient(dbHost, dbPort);
db = mongoClient.getDB(dbName);
} catch (Exception e) {
log.error(e);
}

}

我读到了有关磁盘空间的信息,但我的虚拟机中有 12 GB 可用空间,所以我不认为这是问题所在。我运行了 apt-get Upgrade,但它也没有改变任何东西。我还重新安装了 mongoDb,但没有任何变化。我也尝试重新编译,但也没有任何改变。

有人有什么建议吗?

添加:

在这里您可以找到我的项目的库选项卡。我使用多个数据库,所以我标记了对 MongoDB 重要的数据库 the library tab of my project

最佳答案

IncompatibleClassChangeError 的一个可能原因您得到的是 Mongo 库二进制文件已更改(无论出于何种原因),现在您之前编译的测试代码不再与该库兼容。我建议重新编译您的测试代码并重试。

关于java - mongoDB:java.lang.InknownClassChangeError:实现类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32199063/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com