You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Quarkus应用测试环境H2数据源配置报错,请求协助排查

问题解决步骤

核心问题分析

第一个报错是因为你用了普通的H2数据库依赖,而非Quarkus官方的JDBC H2扩展——Quarkus不会自动识别普通H2依赖为JDBC驱动提供者,所以启动测试环境时找不到H2驱动。第二个报错是因为你禁用了JDBC数据源,但Hibernate ORM必须依赖可用的JDBC数据源才能初始化。

具体修复操作

  1. 替换H2依赖为Quarkus JDBC扩展
    把原来的普通H2依赖替换成Quarkus官方的JDBC H2扩展,确保测试环境能正确加载驱动:

    <dependency>
        <groupId>io.quarkus</groupId>
        <artifactId>quarkus-jdbc-h2</artifactId>
        <scope>test</scope>
    </dependency>
    

    移除原来的com.h2database:H2依赖。

  2. 移除错误配置
    删除你添加的quarkus.datasource.jdbc=false配置,Hibernate需要JDBC数据源才能正常工作。

  3. 保持原有配置不变
    你的application.properties中测试环境的数据库配置是正确的,无需修改:

    quarkus.datasource.db-kind=oracle 
    quarkus.datasource.username=****_res_test
    quarkus.datasource.password=******************$v0yoxh
    quarkus.datasource.jdbc.url=jdbc:oracle:thin:@*****-nat.*****.net:3330:*****
    
    %test.quarkus.datasource.db-kind=h2
    %test.quarkus.datasource.username=sa
    %test.quarkus.datasource.password=password
    %test.quarkus.datasource.jdbc.url=jdbc:h2:mem:test;DB_CLOSE_DELAY=-1;MODE=PostgreSQL
    

验证启动

重新执行命令:

./mvnw quarkus:dev -Dquarkus.profile=test

此时Quarkus会自动识别H2 JDBC驱动,测试环境的数据源能正常初始化,Hibernate也能找到对应的数据源完成启动。

内容的提问来源于stack exchange,提问作者grigor martirosyan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.27 04:16:25