Mongodb与java的连接问题

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();

我在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();
       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