我知道这个问题出现在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
,但没有成功。
答案 0 :(得分:1)
网址前缀jdbc:postgres://
应为jdbc:postgresql://
答案 1 :(得分:0)
看起来它可能与主机名中的下划线有关。看起来主机名中允许使用下划线:请参阅https://stackoverflow.com/a/7852692/227986