适配Apache Ignite 2.16的H2数据库兼容版本咨询
Apache Ignite 2.16 配置ignite-indexing时NoClassDefFoundError的解决方案
你遇到的java.lang.NoClassDefFoundError: org/h2/value/ValueByte确实是H2版本兼容性问题——H2 2.x系列重构了内部API,移除了org.h2.value.ValueByte这类旧API类,而Ignite 2.16的索引模块依赖的是H2 1.x的API规范。
Ignite 2.16官方兼容的H2版本是1.4.200,你需要在Gradle中强制引入这个版本来覆盖默认的h2-2.2.224.jar,配置方式如下:
Gradle 强制依赖配置
方式1:直接在依赖声明中指定版本并强制生效
dependencies { implementation 'org.apache.ignite:ignite-indexing:2.16.0' implementation('com.h2database:h2:1.4.200') { force = true } }
方式2:通过全局依赖解析策略强制统一版本
configurations.all { resolutionStrategy { force 'com.h2database:h2:1.4.200' } } dependencies { implementation 'org.apache.ignite:ignite-indexing:2.16.0' }
配置完成后,执行gradle dependencies可以验证H2版本是否已经被替换为1.4.200,确认后重新启动Ignite即可解决该异常。
内容的提问来源于stack exchange,提问作者Sony Joseph
相关产品推荐
相关产品推荐

