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

SpringBoot3.2集成ShardingSphere-JDBC5.4.1遇snakeyaml构造方法缺失问题

SpringBoot3.2集成shardingsphere-jdbc-core5.4.1时org.yaml.snakeyaml.representer.Representer无参构造方法找不到的解决方案

问题原因

SpringBoot3.2默认引入的snakeyaml版本为2.0+,该版本移除了org.yaml.snakeyaml.representer.Representer的无参构造方法;而shardingsphere-jdbc-core5.4.1依赖低版本snakeyaml,代码中仍在调用这个已被移除的无参构造,导致NoSuchMethodError。

解决方案

方法一:强制指定兼容的snakeyaml版本

在项目依赖中强制引入shardingsphere兼容的snakeyaml版本(如1.33),覆盖SpringBoot默认版本:

Maven(pom.xml)

<dependency>
    <groupId>org.yaml</groupId>
    <artifactId>snakeyaml</artifactId>
    <version>1.33</version>
</dependency>

Gradle(build.gradle)

implementation('org.yaml:snakeyaml:1.33') {
    force = true
}

方法二:升级ShardingSphere版本

ShardingSphere 5.4.2及以上版本已适配SpringBoot3.2的snakeyaml版本,直接升级依赖即可解决冲突:

Maven(pom.xml)

<dependency>
    <groupId>org.apache.shardingsphere</groupId>
    <artifactId>shardingsphere-jdbc-core</artifactId>
    <version>5.4.2</version>
</dependency>

关键报错日志

jakarta.servlet.ServletException: 请求处理器分发失败:java.lang.NoSuchMethodError: org.yaml.snakeyaml.representer.Representer: 未找到方法'void ()'
...
Caused by: java.lang.NoSuchMethodError: org.yaml.snakeyaml.representer.Representer: 未找到方法'void ()'
at org.apache.shardingsphere.infra.util.yaml.representer.ShardingSphereYamlRepresenter.(ShardingSphereYamlRepresenter.java:42)
...

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.03 15:47:03