MongoTimeoutException消息:10000毫秒后等待连接时超时

时间:2014-11-09 10:59:48

标签: mongodb grails groovy gorm

我在grails中使用gorm连接到MongoDB。我收到了MongoTimeOutException。 我能够使用mongo java驱动程序独立程序成功连接到MongoDb。 为什么我无法通过Grails GORM插件连接?

有人可以帮忙吗? 以下是配置

grails {
    mongo {
      host = "localhost"
      port = 27107
      databaseName = "test"
     options{
         connectionsPerHost=20
     }
    }
  }

以下是域类

class Device {


    String deviceType
    String deviceId
    int primary

    static constraints = {

    }
}

以下是异常追踪

| Error 2014-11-09 16:10:39,620 [http-bio-8080-exec-4] ERROR errors.GrailsExceptionResolver  - MongoTimeoutException occurred when processing request: [GET] /devices/Device

Timed out while waiting to connect after 10000 ms. Stacktrace follows:
Message: Timed out while waiting to connect after 10000 ms
    Line | Method
->>  131 | getDescription        in com.mongodb.BaseCluster
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
|    396 | getClusterDescription in com.mongodb.DBTCPConnector
|    569 | getType . . . . . . . in     ''
|    370 | isMongosConnection    in     ''
|    645 | isMongosConnection .  in com.mongodb.Mongo
|    454 | _check                in com.mongodb.DBCursor
|    546 | _hasNext . . . . . .  in     ''
|    571 | hasNext               in     ''
|   1893 | hasNext . . . . . . . in org.grails.datastore.mapping.mongo.query.MongoQuery$MongoResultList$1
|      8 | index                 in ewents.DeviceController
|    198 | doFilter . . . . . .  in grails.plugin.cache.web.filter.PageFragmentCachingFilter
|     63 | doFilter              in grails.plugin.cache.web.filter.AbstractFilter
|    895 | runTask . . . . . . . in java.util.concurrent.ThreadPoolExecutor$Worker
|    918 | run                   in     ''
^    695 | run . . . . . . . . . in java.lang.Thread

或者有人可以通过GORM支持共享示例Grails示例吗?这对Grails来说基本上是新手。

2 个答案:

答案 0 :(得分:4)

我想出了这个问题。这是我的坏,鉴于端口号为27107而不是27017,我花了一天时间才弄明白这一点。 LOL

答案 1 :(得分:1)

我有一个类似的问题,它表明在我的测试用例中,我没有得到我预期的属性。 (我的主机在字符串中包含一个引号......)

我对将来遇到此问题的开发人员的建议是在方法“boolean isMongosConnection()”中的com.mongodb.mongo.java中设置断点,并查看实际使用的主机和端口。