带有PostgreSQL,Flyway和Hikari的Spring Boot 2:驱动程序声称不接受jdbcUrl
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了带有PostgreSQL,Flyway和Hikari的Spring Boot 2:驱动程序声称不接受jdbcUrl相关的知识,希望对你有一定的参考价值。
我已经将Spring Boot与PostgreSQL和Flyway一起使用了很长一段时间,直到现在几乎没有遇到任何无法解决的问题。我正在建立一个新项目,并且像往常一样,我试图将自定义配置保持在最低限度,希望Spring Boot知道如何配置大多数东西-通常是这样。但是现在尝试创建“ flywayInitializer” bean时出现错误。它是由以下RuntimeException引起的:
Caused by: java.lang.RuntimeException: Driver org.postgresql.Driver claims to not accept jdbcUrl, jdbc.postgresql://localhost:5432/tmt
at com.zaxxer.hikari.util.DriverDataSource.<init>(DriverDataSource.java:110) ~[HikariCP-3.4.2.jar:na]
at com.zaxxer.hikari.pool.PoolBase.initializeDataSource(PoolBase.java:321) ~[HikariCP-3.4.2.jar:na]
我在Macbook(Catalina 10.15)上运行了PostgreSQL 12.2,这是通过自制程序安装并启动的本地进程。我使用Spring Boot 2.2.4.Release如下(来自pom.xml):
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.2.4.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<!-- groupId, etc. omitted -->
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<java.version>11</java.version>
<hibernate.types.version>2.4.2</hibernate.types.version>
<html.unit.version>2.36.0</html.unit.version>
<jaxb.runtime.version>2.3.2</jaxb.runtime.version>
<nv.i18n.version>1.26</nv.i18n.version>
<spring.version>5.1.5.RELEASE</spring.version>
</properties>
<dependencies>
<!-- ##############################
###### Dev ######
############################## -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!-- Spring AOP -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-aop</artifactId>
</dependency>
<!-- Spring Cache -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-cache</artifactId>
</dependency>
<!-- Spring Data -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<!-- Spring Redis -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
<!-- other dependencies omitted -->
</dependencies>
Redis尚未添加为数据源,但已添加为依赖项以供将来使用。现在,我正在我的application.yml中配置数据源,如下所示:
spring:
datasource:
url: jdbc.postgresql://localhost:5432/tmt
username: tmt
password: *********
driver-class-name: org.postgresql.Driver
flyway:
baselineOnMigrate: true
locations: classpath:db/migration
jpa:
hibernate:
ddl-auto: update
generate-ddl: true
properties:
hibernate:
dialect: org.hibernate.dialect.PostgreSQL9Dialect
jdbc:
lob:
non_contextual_creation: true
我已经对错误消息进行了搜索,发现很多人在配置Hikari连接池时遇到了问题,该池现在是Spring Boot的默认设置,但是这些问题主要与多个数据源有关,这不是我所拥有的(然而)。我仍然尝试过,但是解决他们的问题没有帮助我。我发现的一个较旧的问题是,Hikari无法理解url属性,需要一个名为jdbcUrl的属性,但这也无济于事。
我真的不知道该怎么做,但是我认为它要么与Hikari连接池有关,要么可能与我的postgreSQL实例有关。我确实发现错误消息有点奇怪:“ org.postgresql.Driver claims不接受jdbcUrl”。它到底在声称什么?是否隐藏了另一个错误?有什么方法可以使其更详细吗?
非常感谢任何帮助或提示!
正如汤米·施密特(Tommy Schmidt)正确指出的那样,我只是在网址中输入错字。用冒号代替圆点可以解决它,显然:
jdbc:postgresql://localhost:5432/tmt
使用上述网址,即可使用。
以上是关于带有PostgreSQL,Flyway和Hikari的Spring Boot 2:驱动程序声称不接受jdbcUrl的主要内容,如果未能解决你的问题,请参考以下文章
PostgreSQL ‘数据库不存在’ - Java Spring Boot、Flyway、Docker/PostgreSQL
无法在 Spring Boot 中将 Flyway 迁移与 postgresQL 连接起来
Flyway - 自动增量 ID 不适用于 PostgreSQL 中的测试数据
使用 Flyway 和 Docker 容器内的嵌入式 Postgresql 运行测试时出现 java.net.ConnectException