0

将 grails 应用程序部署到 cloudfoundry 时,如果定义多数据源,则会出现错误: Cannot create JDBC driver of class 'org.postgresql.Driver' for connect URL 'n/a'

   dataSource {
      dialect = "org.hibernate.dialect.MySQLInnoDBDialect"
      driverClassName = 'com.mysql.jdbc.Driver'
      username = 'n/a'
      password = 'n/a'
      url = 'n/a'
      dbCreate = 'update'
   }
   dataSource_postgre {
       dialect = "org.hibernate.dialect.PostgresPlusDialect"
       driverClassName = "org.postgresql.Driver"
       username = 'n/a'
       password = 'n/a'
       url = "n/a"
       dbCreate = 'update'
    }

但正如我从http://blog.springsource.com/2011/04/12/one-step-deployment-with-grails-and-cloud-foundry/知道的 那样:

当您将服务绑定到 Cloud Foundry 中的应用程序时,您是在告诉云在运行时将该服务的连接设置传递给应用程序。然后,Cloud Foundry 插件会获取该信息并覆盖应用程序中的连接设置。就像变魔术一样,您的应用程序随后可以透明地针对云服务运行,而您无需执行任何操作!这适用于所有可用的服务,而不仅仅是 MySQL

4

2 回答 2

1

CloudFoundry will reconfigure the data source and replace your local DataSource definition. The way you notify CloudFoundry about the services you need is interacting with CF with vmc Tunneling with Caldecott command or Cloud Foundry Integration for STS.

于 2013-01-11T08:42:49.693 回答
0

如果可能,使用 VMC 检查应用程序的日志,在 staging.log 中,您应该会看到已自动配置的服务的摘要。

我必须检查这是否可以使用两种服务,您可能必须使用 VCAP_SERVICES 环境变量手动配置一项。

于 2013-01-11T11:47:48.590 回答