【问题标题】:MongoDB and Play! Framework Inconsistent BehaviourMongoDB 和玩!框架不一致的行为
【发布时间】:2011-12-06 13:58:01
【问题描述】:

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

    @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(host, port) 方法,该方法应该会因未知主机异常而失败。它在我的机器上没有失败(无论我输入什么字符串而不是失败),但它在我的同事机器上失败了。所以测试在我的机器上失败并通过了他的(即他得到了异常)。任何想法都会让我难过!

谢谢

保罗

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

 */
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 是我们设置的变量(例如 failure 和 0)。

【问题讨论】:

    标签: mongodb playframework mongodb-java


    【解决方案1】:

    我发现这是某个地方的 DNS 问题。当我在家里运行它时(从我最初发帖的地方)它失败了,似乎一直在解决“失败”的名称,所以当我输入“localhost_123”之类的东西时,它工作得很好。

    我今天早上来到办公室,它又“失败”了。因此,进一步挖掘似乎我的路由器或家中的某物正在将“故障”解析为它知道的地址,该地址在办公室的网络上不存在。

    感谢所有看到这里的人。很奇怪。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-03-18
      • 2023-03-21
      • 2011-08-30
      • 2012-06-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多