Grails 3.0.1 不支持 application.yml mongo 配置
Posted
技术标签:
【中文标题】Grails 3.0.1 不支持 application.yml mongo 配置【英文标题】:Grails 3.0.1 not honoring application.yml mongo config 【发布时间】:2015-06-16 09:45:02 【问题描述】:尝试仅使用 mongodb 启动 Grails 3.0.1 应用程序。 mongo 插件似乎没有读取 application.yml 文件中的 mongo 配置。我把它放在环境开发部分、环境部分之外等,但它只使用 localhost:27017 的默认配置和“test”的数据库名称。
这是当前配置:
// default application.yml stuff
environments:
development:
grails:
mongo:
host: 'ip_address_here'
port: 27017
databaseName: 'app_dev'
test:
// rest of application.yml stuff
作为测试,我在 BootStrap 中转储了 grailsApplication.config 数据,mongo 的东西确实出现在那里,所以它正在加载。
【问题讨论】:
请在github.com/grails/grails-data-mapping/issues 提交错误报告。感谢您的反馈。 【参考方案1】:这是适合我的配置
Grails 3.0.1 org.grails.plugins:mongodb:4.0.0
environments:
development:
grails:
mongodb:
connectionString: "mongodb://127.0.0.1/test"
autoConnectRetry: true
connectTimeout: 0
maxWaitTime: 120000
socketTimeout: 0
socketKeepAlive: false
writeNumer: 0
writeTimeout: 0
writeFsync: false
dataSource:
dbCreate: create-drop
【讨论】:
谢谢,我最终使用了一个连接字符串,但几周前还提交了一个补丁来让另一种方法工作。我认为它尚未被接受。connectionString
解决方法做到了。 URI 格式记录在:api.mongodb.org/java/3.0/com/mongodb/MongoClientURI.html【参考方案2】:
查看here 了解所有配置选项。 特别注意“mongodb”而不是“mongo”
【讨论】:
更改为 mongodb 适用于除数据库名称之外的所有内容。查看代码,似乎只有在它使用的连接字符串(并通过测试验证)时才能识别 databaseName。然而,我上面展示的格式在使用这个插件的 grails 2.4.x 应用程序中工作。 是的,你是对的!我正在使用连接字符串,这就是它对我有用的原因。但你肯定发现了一个错误!请归档。【参考方案3】:文档可能有点令人困惑,这应该可以解决身份验证问题
connectionString: "mongodb://myUserName:myPassword@ipOfServer:portOfServer/dbName"
【讨论】:
以上是关于Grails 3.0.1 不支持 application.yml mongo 配置的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Tomcat7 中部署 Grails 3.0.1 战争文件?