Vertx JDBC连接SQL Server触发NoSuchMethodError错误如何解决
问题原因
该错误是依赖版本不兼容导致的:
你已经引入了io.vertx:vertx-stack-depchain平台依赖,该依赖已经统一托管了所有Vert.x组件以及其配套依赖的版本,包括agroal连接池。你手动额外声明了1.13版本的agroal-api和agroal-pool,与Vert.x 4.2.1版本适配的agroal版本不一致,最终触发了二进制兼容层面的方法找不到异常。
解决方案
- 移除build.gradle中手动声明的agroal相关两行依赖:
// 删除以下两行 implementation 'io.agroal:agroal-api:1.13' implementation 'io.agroal:agroal-pool:1.13'
- 可选优化:vertx-jdbc-client的版本也可以省略,由vertx-stack-depchain统一托管,避免手动指定版本和栈依赖版本不一致的问题。
修改后可用的依赖配置示例:
implementation platform("io.vertx:vertx-stack-depchain:4.2.1") implementation "io.vertx:vertx-core" implementation "io.vertx:vertx-jdbc-client" implementation "io.vertx:vertx-lang-groovy" implementation "com.microsoft.sqlserver:mssql-jdbc:9.4.0.jre16"
修改完成后清理项目构建缓存,重新构建运行即可解决该问题。
内容的提问来源于stack exchange,提问作者waldelb
相关产品推荐
相关产品推荐

