2017-02-15 76 views
0

我正在测试Grail 3应用程序来连接运行在另一台服务器上的mogoDB。Grails 3 MongoDB没有从application.yml读取connectionString

独立java程序成功连接数据库。但是Grail 3应用程序无法连接到数据库。异常显示其连接到本地主机。

我想了解为什么它没有从aplication.yml文件中读取连接字符串。

application.yml文件:

environments: 
    development: 
     grails: 
      mongodb: 
       connectionString: "mongodb://192.168.1.13:27017/test" 
当我访问该网页,看到此错误消息

grails> 2017-02-14 22:52:28.116 ERROR --- [nio-8080-exec-9] o.g.web.errors.GrailsExceptionResolver : MongoTimeoutException occurred when processing request: [GET] /book/index 
Timed out after 30000 ms while waiting for a server that matches ReadPreferenceServerSelector{readPreference=primary}. Client view of cluster state is {type=UNKNOWN, servers=[{address=127.0.0.1:27017, type=UNKNOWN, state=CONNECTING, exception={com.mongodb.MongoSocketOpenException: Exception opening socket}, caused by {java.net.ConnectException: Connection refused: connect}}]. Stacktrace follows: 

为什么它连接到localhost?

尝试从这个答案没有工作。

Installing and using MongoDB in Grails 3.x

感谢

回答

2

在开发和生产适合我这种配置工作。

environments: 
development: 
    grails: 
     mongodb: 
      host: "localhost" 
      port: 27017 
      username: "" 
      password: "" 
      databaseName: "mydb-dev" 
production: 
    grails: 
     mongodb: 
      host: "1.1.1.1" 
      # host: "localhost" 
      port: 27017 
      username: "" 
      password: "" 
      databaseName: "mydb-prod" 

我正在使用Grails 3.1.9和最新的MongoDB插件。

compile 'org.grails.plugins:mongodb' 
+0

感谢它现在的作品。我正在使用Grails 3.2.5 – sfgroups