首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SQLException在使用flywaydb插件注入JDBC连接URL时为URL:<no value>返回null

问SQLException在使用flywaydb插件注入JDBC连接URL时为URL:<no value>返回null
EN

Stack Overflow用户
提问于 2022-04-25 11:25:05
回答 1查看 305关注 0票数 0

在为我的服务运行集成测试时,我遇到了以下异常:

代码语言:javascript
复制
ERROR o.a.tomcat.jdbc.pool.ConnectionPool: Unable to create initial connections of pool.

Caused By: java.sql.SQLException: Driver:com.mysql.jdbc.Driver@xxxxx returned null for URL:<no value>

at org.apache.tomcat.jdbc.pool.PooledConnection.connectUsingDriver(PooledConnection.java:326)

我正在使用org.flywaydb插件,在pom.xml中定义如下:

代码语言:javascript
复制
<plugin>
  <groupId>org.flywaydb</groupId>
  <artifactId>flyway-maven-plugin</artifactId>
  <version>3.2.1</version>
  <configuration>
    <url>jdbc:mysql://localhost:3306/mydb</url>
    <user>admin</user>
    <password>pwd</password>
    <validateOnMigrate>false</validateOnMigrate>
  </configuration>
</plugin>

在application.yaml中,我将集成测试的属性定义为:

代码语言:javascript
复制
spring:
    profiles:integration-tests
    datasource:
        driverClassName: org.h2.Driver
        url: jdbc:h2:mem:mydb;MODE=MySQL;DB_CLOSE_ON_EXIT=FALSE;INIT=RUNSCRIPT FROM 'classpath:/path/schema.sql'
        username: root
        password: 
        show_sql: false
EN

回答 1

Stack Overflow用户

发布于 2022-04-25 15:12:10

首先需要澄清的是,maven天桥插件和Spring数据源属性在使用时间上没有关系:

process

  • SpringBoot在应用程序启动后在应用程序构建的某个点运行
  1. Maven插件,读取数据源属性。请参阅What is the difference between Flyway Core and Flyway Maven Plugin?

第二件事

url: jdbc:h2:mem....

  • Maven

  • SpringBoot使用内存中的数据库,该数据库可通过此 Flyway插件对另一个DB url: jdbc:mysql....运行脚本(如果有的话)。

这就是为什么flyway会配置另一个数据库,而不是测试中使用的数据库。

第三件事:

SpringBoot似乎没有“查看”数据源属性和/或驱动程序url: <no value>。你是如何进行测试的?你设定了正确的弹簧轮廓吗?

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71998768

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档