【问题标题】:Spring Boot + JPA, PostgreSQL driver returns null for Heroku Remote DB URLSpring Boot + JPA,PostgreSQL 驱动程序为 Heroku 远程数据库 URL 返回 null
【发布时间】:2017-12-18 17:35:42
【问题描述】:

我知道这个问题出现在 stackoverflow 上,但没有一个解决方案对我有用。我有一个自动配置的 Spring Boot 应用程序。我有这个application.properties:

#HEROKU CREDENTIALS
spring.datasource.url=jdbc:postgres://my_url/database?ssl=true&sslfactory=org.postgresql.ssl.NonValidatingFactory

spring.datasource.username=username
spring.datasource.password=my_password
spring.datasource.driver-class-name=org.postgresql.Driver
spring.jpa.database-platform=org.hibernate.dialect.PostgreSQLDialect
spring.jpa.show-sql=true

当应用程序部署在 Heroku 上时,一切正常。当我尝试在本地机器上运行它时,我无法连接到数据库。

java.sql.SQLException: Driver:org.postgresql.Driver@69ec93c2 returned null for URL: my_url
at org.apache.tomcat.jdbc.pool.PooledConnection.connectUsingDriver(PooledConnection.java:329) ~[tomcat-jdbc-8.5.14.jar:na]
at org.apache.tomcat.jdbc.pool.PooledConnection.connect(PooledConnection.java:203) ~[tomcat-jdbc-8.5.14.jar:na]
at org.apache.tomcat.jdbc.pool.ConnectionPool.createConnection(ConnectionPool.java:735) [tomcat-jdbc-8.5.14.jar:na]
at org.apache.tomcat.jdbc.pool.ConnectionPool.borrowConnection(ConnectionPool.java:667) [tomcat-jdbc-8.5.14.jar:na]

正如您在application.properties 中看到的,我添加了ssl 和sslfactory,但没有成功。

【问题讨论】:

  • 我认为jdbc:postgres:// 应该是jdbc:postgresql://,但这似乎不是主要问题。
  • @codefinger,它确实有效!非常感谢

标签: java spring postgresql jpa heroku


【解决方案1】:

网址前缀jdbc:postgres://应该是jdbc:postgresql://

【讨论】:

    【解决方案2】:

    看起来它可能与主机名中的下划线有关。主机名中似乎允许使用下划线:请参阅 https://stackoverflow.com/a/7852692/227986

    【讨论】:

    • 没有下划线。如果有下划线,我想它根本不起作用:jdbc:postgres://ec2-174-129-224-33.compute-1.amazonaws.com:5432/d84d5t07vqtcfj
    猜你喜欢
    • 2017-07-31
    • 1970-01-01
    • 2017-04-23
    • 2020-02-25
    • 2016-12-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-12-23
    相关资源
    最近更新 更多