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

使用spring-boot-starter-data-redis出现SafeEncoder类找不到异常求助

问题分析与解决办法

核心原因

java.lang.ClassNotFoundException: redis.clients.jedis.util.SafeEncoder 本质是Jedis版本冲突导致的:

  • Spring Boot 2.7.9 默认依赖的 Jedis 版本是 3.9.0,这个版本里 SafeEncoder 类位于 redis.clients.util 包下,而非报错里的 redis.clients.jedis.util。
  • 当项目中引入了 Jedis 4.x 版本时,这个类会被直接移除,同时旧的包路径也不存在,一旦有代码(可能是你的RedisConfig、Spring Data Redis内部逻辑或Camunda的依赖)尝试调用这个类,就会抛出找不到类的异常。

排查与解决步骤

1. 先排查实际依赖的Jedis版本

用Maven或Gradle命令查看项目依赖树,找出哪个组件引入了冲突的Jedis版本:

  • Maven:执行 mvn dependency:tree,搜索 redis.clients:jedis,看是否有4.x版本被引入。
  • Gradle:执行 ./gradlew dependencies,同样搜索Jedis相关条目。

2. 锁定兼容的Jedis版本

在项目的依赖管理中强制指定Spring Boot 2.7.x兼容的Jedis 3.9.0版本,覆盖其他依赖引入的高版本:

  • Maven(在pom.xml的dependencyManagement中添加):
    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>redis.clients</groupId>
                <artifactId>jedis</artifactId>
                <version>3.9.0</version>
            </dependency>
        </dependencies>
    </dependencyManagement>
    
  • Gradle(在build.gradle中添加约束):
    dependencies {
        constraints {
            implementation 'redis.clients:jedis:3.9.0'
        }
    }
    

3. 检查自定义代码是否直接调用了SafeEncoder

如果你的RedisConfig或其他业务代码里有直接使用SafeEncoder的地方,建议替换为JDK标准的编码方式,比如:

// 替换之前的SafeEncoder.encode("xxx")
byte[] encoded = "你的字符串".getBytes(StandardCharsets.UTF_8);

这种写法不依赖Jedis的工具类,兼容性更强。

4. 排除Camunda依赖中的冲突Jedis

如果排查后发现是Camunda 7.19.0的某个依赖引入了高版本Jedis,直接排除该依赖即可:

<dependency>
    <groupId>org.camunda.bpm.springboot</groupId>
    <artifactId>camunda-bpm-spring-boot-starter</artifactId>
    <version>7.19.0</version>
    <exclusions>
        <exclusion>
            <groupId>redis.clients</groupId>
            <artifactId>jedis</artifactId>
        </exclusion>
    </exclusions>
</dependency>

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.21 20:22:27