Mongodb与java的连接问题
我在java中遇到mongoDB连接问题,这是我的连接类Mongodb与java的连接问题,java,mongodb,morphia,Java,Mongodb,Morphia,我在java中遇到mongoDB连接问题,这是我的连接类 public MongoDbUtil() { try { System.out.println("1"); String host = "127.0.0.1" ; String dbName = "m_prod" ; int port =27017 ; System.out.println("2"); Mongo m = new Mongo();
public MongoDbUtil() {
try {
System.out.println("1");
String host = "127.0.0.1" ;
String dbName = "m_prod" ;
int port =27017 ;
System.out.println("2");
Mongo m = new Mongo();
System.out.println("3");
ds = new Morphia().createDatastore(m,dbName);
System.out.println("4");
ds.ensureIndexes();
System.out.println("5");
ds.ensureCaps();
System.out.println("1");
} catch(Exception e) {
System.out.println("catch");
}finally{
System.out.println("finally");
System.out.println(ds==null);
} }
只有1和2正在打印,在“finally”正在打印之后,“ds”也为空,没有任何异常发生(“catch”未打印)
Mongo服务器已启动并正在运行,我可以从命令提示符(Linux)访问,另一件有趣的事情是,当我通过单元测试函数调用此方法时,它工作正常,但对于发生上述问题的所有其他情况,原因可能是什么
谢谢
Mongo()
已被弃用,应改用MongoClient()
-请参阅Mongo()
已被弃用,应改用MongoClient()
-请参阅如果您使用的是3.0驱动程序,那么有一个驱动程序兼容层可以帮助您进行转换。不过,您确实应该使用新的API。如果您使用的是3.0驱动程序,那么有一个驱动程序兼容层可以帮助您进行转换。但是,您确实应该使用新的API。如果
catch(Throwable e)
(而不是catch(Exception e)
)显示一些错误,请尝试使用e.printStackTrace()。否则,您的catch块对于任何错误信息都是无用的。@Kayaman:程序甚至不会捕获块,它不会打印在catch内部打印的“catch”block@nutlike:当我放置Throwable时,您是对的。它打印了一个错误,告诉您在创建“m”对象的行中“com.mongodb.Mongo:method()V not found”(Mongo m=new Mongo();)如果catch(Throwable e)
(而不是catch(Exception e)
)显示一些错误,请尝试。使用e.printStackTrace()。否则,您的catch块对于任何错误信息都是无用的。@Kayaman:程序甚至不会捕获块,它不会打印在catch内打印的“catch”block@nutlike:当我放置Throwable时,您是对的。它打印了一个错误,告诉您在创建“m”对象的行中“com.mongodb.Mongo:method()V not found”(Mongo m=new Mongo();)谢谢,“MongoClient”类的包是什么?我使用的是Mongo java驱动程序3.0.0?你确定是3.0.0吗?应该是2.11.2。MongoClient()
是Mongo()
的包装器,具有更安全的默认设置。Mongo()
仍然可以向后兼容,但不应再使用。我正在尝试更新版本,但Morphia版本有问题,我使用的是Morphia 0.91,它使用了mongo java驱动程序:2.8.0,因为我无法将mongo java驱动程序:2.11.2依赖项添加到我的pom.xml文件中。更新到最新的Morphia版本:.0.91一定很老了…多亏了大家,通过将Morphia更新为0.11.0,将java驱动程序更新为2.11.2,问题得到了解决。多亏了againThanks,“MongoClient”类的包是什么,我使用的是mongo java驱动程序3.0.0?你确定3.0.0吗?应该是2.11.2。MongoClient()
是mongo()的包装器
具有更安全的默认设置。Mongo()
仍然可以向后兼容,但不应再使用。我正在尝试更新版本,但Morphia版本有问题,我使用的是Morphia 0.91,它使用了mongo java驱动程序:2.8.0,因为我无法将mongo java驱动程序:2.11.2依赖项添加到我的pom.xml文件中。更新到最新的Morphia版本:.0.91一定很老了……多亏了大家,问题已经解决了,将Morphia更新为0.11.0,java驱动程序更新为2.11.2,再次感谢这一点:您提供了java驱动程序的快照/alpha/beta吗?它与Morphia的结合如何工作?我们刚刚开始针对3.0驱动程序测试Morphia的过程。我们现在有4个测试fai其中两个是由相同的问题引起的。我不确定是否有公共快照,但我会问。如果您将此存储库添加到pom中,您可以使用以下依赖项获得3.0快照版本:org.mongodb mongo java driver 3.0.0-snapshot与此相关:您是否提供java dri的快照/alpha/betaver?以及它与Morphia的结合是如何工作的?我们刚刚开始针对3.0驱动程序测试Morphia的过程。我们有4个测试失败,其中2个是由同一问题引起的。我不确定公共快照,但我会问。如果您将此存储库添加到pom中,您可以获得具有此依赖关系的3.0快照版本:org.mongodb mongo java驱动程序3.0.0-SNAPSHOT