Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MongoDB,线程中有java异常;“主要”;java.lang.NoClassDefFoundError:org/bson/conversions/bson_Java_Mongodb_Jar_Executable Jar_Bson - Fatal编程技术网

MongoDB,线程中有java异常;“主要”;java.lang.NoClassDefFoundError:org/bson/conversions/bson

MongoDB,线程中有java异常;“主要”;java.lang.NoClassDefFoundError:org/bson/conversions/bson,java,mongodb,jar,executable-jar,bson,Java,Mongodb,Jar,Executable Jar,Bson,当我从intelliJ Idea执行mycode时,它工作正常,但当我在服务器上运行jar时,它抛出以下错误。我使用的是“org.mongodb:mongodb驱动程序:3.4.1”版本 Exception in thread "main" java.lang.NoClassDefFoundError: org/bson/conversions/Bson at com.myapp.server.mongo.MongoDbHandler.prepareMongoDb(MongoD

当我从intelliJ Idea执行mycode时,它工作正常,但当我在服务器上运行jar时,它抛出以下错误。我使用的是“org.mongodb:mongodb驱动程序:3.4.1”版本

 Exception in thread "main" java.lang.NoClassDefFoundError: org/bson/conversions/Bson
        at com.myapp.server.mongo.MongoDbHandler.prepareMongoDb(MongoDbHandler.java:68)
        at com.myapp.server.mongo.MongoDbHandler.<init>(MongoDbHandler.java:22)
        at com.myapp.server.Client.main(Client.java:167)
Caused by: java.lang.ClassNotFoundException: org.bson.conversions.Bson
        at java.net.URLClassLoader$1.run(URLClassLoader.java:372)
        at java.net.URLClassLoader$1.run(URLClassLoader.java:361)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(URLClassLoader.java:360)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
        at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
        ... 3 more
线程“main”java.lang.NoClassDefFoundError中的异常:org/bson/conversions/bson 在com.myapp.server.mongo.MongoDbHandler.prepareMongoDb(MongoDbHandler.java:68)上 位于com.myapp.server.mongo.MongoDbHandler(MongoDbHandler.java:22) 位于com.myapp.server.Client.main(Client.java:167) 原因:java.lang.ClassNotFoundException:org.bson.conversions.bson 在java.net.URLClassLoader$1.run(URLClassLoader.java:372) 在java.net.URLClassLoader$1.run(URLClassLoader.java:361) 位于java.security.AccessController.doPrivileged(本机方法) 位于java.net.URLClassLoader.findClass(URLClassLoader.java:360) 位于java.lang.ClassLoader.loadClass(ClassLoader.java:424) 位于sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308) 位于java.lang.ClassLoader.loadClass(ClassLoader.java:357) ... 3个以上
如果我猜你需要得到你正在使用的任何BSON库;我不会说Mongo是你的问题

关键是: “原因:java.lang.ClassNotFoundException:org.bson.conversions.bson”


这是说它没有找到那个特定的类,我会在IntelliJ中查找,看看它是什么BSON库,然后将它放在服务器上的构建目录(或java库)中。

我知道这是一个旧线程,只适合那些有类似问题的人。几天前,在通过命令行运行jar时,我也遇到了同样的问题,同样的错误跟踪

这不是jar版本的问题,而是包装的问题 罐子

在用所有适当的依赖项打包jar之后,将解决这个问题

我用过

maven汇编插件

用于包装及其工程


.

您可以添加更多信息吗?您指的是web服务器、应用程序服务器还是mongo服务器?您使用的是什么Java版本?这是一个maven版本吗?服务器上的Java版本是否与intelliJ Idea上的相同?很可能是依赖性问题。发布您的
pom.xml
build.gradle
ivy.xml
的一部分,或您定义依赖项的任何地方都是有意义的。我正在使用build.gradle和服务器java 1.8版本以及intellij和1.7 java版本输入“编译组:'org.mongodb',名称:'bson',版本:'2.5.1'”在gradle构建文件中的Dependencies下;听起来这会治好你的up@Hans我刚刚用bson版本2.5.1尝试了您的解决方案,但在线程“main”java.lang.NoClassDefFoundError:org/bson/conversions/Bsoni之前用不同版本的bson库尝试了此解决方案,但得到了相同的结果。我已经将我的mongo库从2.10.0更新到3.4.0,然后我面临这个问题您不应该更改版本,这可能是因为不在您/java认为应该的目录中。最简单的检查方法是将它放在与jar相同的目录中,然后导入(即导入bson3.2.1;排除文件扩展名),这样可以让您查看它是否是路径问题。但是从2.10.0版本开始,很少有方法被弃用,因此我使用最新的3.4.0版本进行了更新