0

我在 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) 访问,另一个有趣的事情是,当我通过单元测试功能调用此方法时它工作正常,但对于上述问题的所有其他情况,可能是什么原因?

谢谢

4

2 回答 2

3
  1. Mongo()已弃用,您应该MongoClient()改用 - 请参阅http://api.mongodb.org/java/2.11.0/com/mongodb/Mongo.html#Mongo()
  2. 它仍然应该找到已弃用的构造函数。你能包括你的文件的进口吗?
于 2013-07-29T13:16:00.687 回答
1

如果您使用的是 3.0 驱动程序,则有一个驱动程序兼容层可以帮助您进行转换。不过,您确实应该使用新的 API。

于 2013-07-29T14:17:44.420 回答