Postgresql PWS-无法将UAA连接到数据库

Postgresql PWS-无法将UAA连接到数据库,postgresql,jdbc,cloud-foundry,cloudfoundry-uaa,pivotal-web-services,Postgresql,Jdbc,Cloud Foundry,Cloudfoundry Uaa,Pivotal Web Services,我在Pivotal Web Services上遇到了一个问题,无法连接到用于UAA的Postgres SQL数据库 我已经定义了服务并将其绑定到应用程序,但正在手动将凭据放入(不确定是否在环境变量中发生了参数替换) UAA.yaml文件的相关部分: database: driverClassName: org.postgresql.Driver url: jdbc:postgresql://babar.elephantsql.com:5432/db username: d

我在Pivotal Web Services上遇到了一个问题,无法连接到用于UAA的Postgres SQL数据库

我已经定义了服务并将其绑定到应用程序,但正在手动将凭据放入(不确定是否在环境变量中发生了参数替换)

UAA.yaml文件的相关部分:

database:
    driverClassName: org.postgresql.Driver
    url: jdbc:postgresql://babar.elephantsql.com:5432/db
    username: db
    password: randomPass
    maxactive: 15
    maxidle: 5
    minidle: 0
    removeabandoned: false
    logabandoned: true
    abandonedtimeout: 300
    evictionintervalms: 15000
    caseinsensitive: false 
我必须遵守ElephantSQL的“熊猫”计划,该计划将我限制为20个并发连接。这是我在UAA启动时通常收到的错误:

java.sql.SQLException:Driver:org.postgresql。Driver@112ab411为URL返回空值:postgres://db:randomPass@babar.elephantsql.com:5432/db 2017-01-28814:15:57.43-0500[APP/PROC/WEB/0]在org.apache.tomcat.jdbc.pool.PooledConnection.connectUsingDriver上发布(PooledConnection.java:296)


我不知道为什么它返回null,凭据和url是正确的

日志记录显示
URL:postgres://...
似乎表明JDBC URL被破坏,而
JDBC:
被剥离。而且它似乎在URL中添加了用户名和密码,据我所知,PostgreSQL驱动程序不支持这一点

JDBC规范/API要求连接到不支持的JDBC url的JDBC驱动程序返回
null


换句话说,要么您的配置错误,要么UAA做错了什么。因为我不知道Cloudfoundry,所以我无法回答具体问题。

日志显示
URL:postgres://...
似乎表明JDBC URL被破坏,而
JDBC:
被剥离。而且它似乎在URL中添加了用户名和密码,据我所知,PostgreSQL驱动程序不支持这一点

JDBC规范/API要求连接到不支持的JDBC url的JDBC驱动程序返回
null


换句话说,要么您的配置错误,要么UAA做错了什么。由于我不知道Cloudfoundry,我无法回答具体问题。

也许可以使用工具检查您的yaml,以验证其正确性。空白区很重要,所以你可以有一个标签或是一些可以把它扔掉的东西。像这样的工具帮助->YAML如果有效,我已经用验证器检查了它,日志中没有错误。也许可以用工具检查你的YAML来验证它是否正确。空白区很重要,所以你可以有一个标签或是一些可以把它扔掉的东西。像这样的工具帮助->YAML如果有效,我已经用验证器检查了它,日志中没有错误。它对MySQL驱动程序做了同样的事情。奇怪的是,它在我的本地机器上运行,只是在CF上失败了。不要关注它在本地运行的事实。这是一款Spring应用程序,该应用程序可以对其运行的环境和服务做出反应。这意味着该应用程序可能不会在本地运行与在CF上运行相同的数据库(例如,它可能在本地使用H2或HSQL db,而在CF上使用Postgres或MySQL,不过还有其他区别)。您需要的是调试日志,这样您就可以看到UAA是如何启动的,以及在失败时它在做什么。它对MySQL驱动程序也做同样的事情。奇怪的是,它在我的本地机器上运行,只是在CF上失败了。不要关注它在本地运行的事实。这是一款Spring应用程序,该应用程序可以对其运行的环境和服务做出反应。这意味着该应用程序可能不会在本地运行与在CF上运行相同的数据库(例如,它可能在本地使用H2或HSQL db,而在CF上使用Postgres或MySQL,不过还有其他区别)。您需要的是调试日志,这样您就可以看到UAA是如何启动的,以及失败时它在做什么。