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

Vert.x 4.3.2使用JDBCPool报NoClassDefFoundError异常问题

问题产生原因

从Vert.x 4.x版本开始,vertx-jdbc-client的默认数据库连接池实现切换为Agroal连接池,Agroal相关依赖不会作为vertx-jdbc-client的传递依赖自动引入。仅引入jdbc-client组件和H2数据库驱动时,运行时缺少Agroal的核心类文件,就会抛出java.lang.NoClassDefFoundError: io/agroal/api/configuration/supplier/AgroalDataSourceConfigurationSupplier异常。
你提供的JDBCPool初始化代码本身没有语法或配置错误,问题完全由依赖缺失导致。

修复方案

根据你使用的构建工具,在项目依赖中补充引入Agroal连接池依赖即可,注意Agroal版本需要和你当前使用的Vert.x版本兼容:

  • 如果使用Maven,在pom.xml的dependencies节点下添加如下依赖:
<dependency>
    <groupId>io.agroal</groupId>
    <artifactId>agroal-pool</artifactId>
    <version>与当前Vert.x版本匹配的Agroal版本(例如Vert.x 4.5.x系列可使用Agroal 2.0+版本)</version>
</dependency>
  • 如果使用Gradle,在build.gradle的dependencies节点下添加如下依赖:
implementation 'io.agroal:agroal-pool:与当前Vert.x版本匹配的Agroal版本'
  • 如果重新通过Vert.x官方starter初始化项目,可以在依赖选择环节勾选Agroal连接池组件,starter会自动补全对应依赖配置,无需手动编写依赖坐标。

添加依赖后刷新项目依赖、重新启动程序,即可正常初始化JDBCPool、执行数据库连接获取操作。

补充:如果你不想使用Agroal作为连接池实现,也可以手动替换为Vert.x JDBC Client支持的其他连接池组件,但补全Agroal依赖是改造成本最低、最符合官方设计的修复方案。

内容的提问来源于stack exchange,提问作者Ravat Tailor

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 22:33:23