MongoDB和Play!框架不一致行为

时间:2011-12-06 13:58:02

标签: mongodb playframework mongodb-java

我在测试中有一些代码如下:

    @Test
public void testRetrieveMongoDBFailUnkownHost()
{   
    //Set up test port and host on DSMongo
    MyMongo mongoTest = new MyMongo();
    mongoTest.setHost("failure");
    mongoTest.setPort("0");

    //attempt to make the connection
    try
    {
        mongoTest.attemptMongoConnection();
        assertTrue(false);
    }
    catch (Exception e) 
    {
        assertEquals("Incorrect error message received: " + e.getMessage(),"Error (3013) : Unknown database host.", e.getMessage());
    }

}

尝试MongoConnection()方法运行新的Mongo(主机,端口)方法,该方法应该因未知的主机异常而失败。它在我的机器上没有失败(无论我放入什么字符串而不是失败)但它在我的同事机器上失败了。因此测试在我的机器上失败并传递给他(即他获得例外)。任何想法都会让我感到难过!

由于

编辑:尝试连接方法中的代码是

 */
public static void attemptMongoConnection() throws MYException 
{
    try {           
        singleMongo = new Mongo(getHost(), getPort());
        Logger.debug("Retrieved Mongo database from " + host);
    } catch (UnknownHostException e) {
        Logger.error("Unknown Host Exception", e);
        throw new MYException(MYMessage.MY_UNKNOWN_HOST);
    } catch (MongoException e) {
        Logger.error("Mongo error", e);
        throw new MYException(MYMessage.DS_MONGO_ERROR);
    }
}

其中singleMOngo是Mongo变量,getHost和getPort是我们设置的(.e。失败和0)。

1 个答案:

答案 0 :(得分:1)

我发现这是DNS某处的问题。当我在家里(从我最初发布帖子的地方)运行它时,它失败并且似乎已经解决了“失败”的名称,所以当我改为输入类似“localhost_123”的东西时它完美无缺。

我今天早上来到办公室,它再次与“失败”合作。因此,进一步挖掘它似乎是我的路由器或家中的某些东西正在解决它所知道的地址“失败”,该地址在办公室中的网络上不存在。

感谢所有看过这个的人。非常离奇。