我遇到mongodb 2.6.5和grails 2.4.4的问题我无法解决。为了隔离问题,我创建了一个简单的2.4.4 grails应用程序,安装了grails mongodb插件(编译":mongodb:3.0.2"),注释掉了hibernate依赖项,添加了我的mongodb数据源,并设置一个简单的域类(com.nerds.Nerd)。当我生成所有然后启动应用程序并导航到NerdController CRUD页面时,我每次都会收到以下错误:
处理请求时发生MongoTimeoutException:[GET] / MONGO / nerd / index 10000 ms后等待连接时超时。 Stacktrace如下: com.mongodb.MongoTimeoutException:等待10000毫秒后连接时超时
我可以使用http://localhost:28017/
我还测试过手动添加数据和从mongo查询。一切正常。
在超时之前的调试日志中,看起来GORM获取了一个mongo会话,然后尝试回滚一个事务。
DatastoreTransactionManager:128 - 为数据存储区事务找到线程绑定的Session [org.grails.datastore.mapping.mongo.MongoSession@e47ee6]
DatastoreTransactionManager:128 - 创建名为[null]的新事务:PROPAGATION_REQUIRED,ISOLATION_DEFAULT,readOnly
DatastoreTransactionManager:128 - 启动事务回滚
DatastoreTransactionManager:128 - 在Session [org.grails.datastore.mapping.mongo.MongoSession@e47ee6]上回滚数据存储区事务
DatastoreTransactionManager:128 - 完成内部交易后恢复暂停的交易
任何见解都会有所帮助。感谢
编辑:mongo数据源非常简单。我使用了正确的端口。
来自mongo日志:
014-11-18T13:10:13.388-0900 [initandlisten] MongoDB启动:pid = 17275 port = 27017 dbpath = / var / lib / mongodb 32位host = enterprise
来自DataSource.groovy
grails {mongo {host =' localhost' port = 27017 databaseName =' mydb' }}
答案 0 :(得分:0)
我相当肯定这个问题是在mongod方面。我停止了mongo守护程序,将其置于高详细调试模式(使用mongod -vvvv命令),当我在观察控制台输出时尝试复制问题时,问题没有发生。我不完全确定超时的确切原因是什么,但现在还没有发生。感谢您的回复。