我在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来说基本上是新手。
答案 0 :(得分:4)
我想出了这个问题。这是我的坏,鉴于端口号为27107而不是27017,我花了一天时间才弄明白这一点。 LOL
答案 1 :(得分:1)
我有一个类似的问题,它表明在我的测试用例中,我没有得到我预期的属性。 (我的主机在字符串中包含一个引号......)
我对将来遇到此问题的开发人员的建议是在方法“boolean isMongosConnection()”中的com.mongodb.mongo.java中设置断点,并查看实际使用的主机和端口。