Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.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
Morphia给出NoClassDefFoundError:com/mongodb/DBObject?_Mongodb_Morphia - Fatal编程技术网

Morphia给出NoClassDefFoundError:com/mongodb/DBObject?

Morphia给出NoClassDefFoundError:com/mongodb/DBObject?,mongodb,morphia,Mongodb,Morphia,我使用Mongo Java客户机2-11.2运行Morphia 0.102 这是一个客户端/服务器应用程序。目前,我在GlassFish上本地测试服务器端 好的,当我使用Mongo和Morphia在客户机上运行一些代码时,没有问题。然后,当服务器端调用某些代码时,它会在服务器上用 mongoClient = new MongoClient("199.00.000.000", 27017); morphia = new Morphia(); //exception

我使用Mongo Java客户机2-11.2运行Morphia 0.102

这是一个客户端/服务器应用程序。目前,我在GlassFish上本地测试服务器端

好的,当我使用Mongo和Morphia在客户机上运行一些代码时,没有问题。然后,当服务器端调用某些代码时,它会在服务器上用

        mongoClient = new MongoClient("199.00.000.000", 27017);
        morphia = new Morphia(); //exception thrown
例外情况:

Caused by: java.lang.NoClassDefFoundError: com/mongodb/DBObject  
    at com.google.code.morphia.Morphia.<init>(Morphia.java:48)  
    at com.google.code.morphia.Morphia.<init>(Morphia.java:44)  
原因:java.lang.NoClassDefFoundError:com/mongodb/DBObject
在com.google.code.morphia.morphia.(morphia.java:48)
在com.google.code.morphia.morphia.(morphia.java:44)
我花了几个小时试图修改Morphia和MongoDriver的版本,没有结果,也没有任何线索


有什么想法吗?

您是否将morphia jar包含在war文件中?将东西添加到glassfish文件夹几乎总是错误的答案。

因此,当我从Netbeans在本地运行glassfish时,在glassfish文件夹中添加jar解决了这个异常。当我将Java EE模块上传到服务器上时,问题又出现了。
在各种文件夹中添加mongo和morphia JAR并不能解决任何问题。解决问题的方法:

-我将Java EE模块集成到一个EAR中,然后部署了EAR(在此之前,我只部署了没有EAR的Java EE模块,这肯定是一个非常糟糕的做法,但我不知道)。

我在这里找到了解决方案:因此,在glassfish文件夹中添加jar解决了我从Netbeans在本地运行glassfish时出现的这个异常。当我将EJB上传到服务器上时,问题又出现了。在各种文件夹中添加mongo和morphia JAR并不能解决任何问题。解决了两件事(我不知道每件事是否足够):我将EJB模块集成到一个EAR中,当从GlassFish控制台部署EAR时,我在字段中填写了它们的名称,要求指定库(这是特定于EAR部署的,或者更可能是我以前错过了它)。