본문 바로가기
오류개선

[오류해결] Factory method 'redisConnectionFactory' threw exception; nested exception is java.lang.NoClassDefFoundError: io/lettuce/core/AbstractRedisClient 에러

by 바투바투 2022. 11. 1.
반응형
오류 원인

 

redis를 이용하여 데이터를 저장하려고 Redisconfig를 아래와 같이 수정하였다.

@Bean
RedisConnectionFactory redisConnectionFactory() {
    return new LettuceConnectionFactory("hostname", 6379);
}

 

원래는 아래와 같은 코드였다.

@Bean
JedisConnectionFactory jedisConnectionFactory() {

    RedisStandaloneConfiguration redisConfig = new RedisStandaloneConfiguration();
    redisConfig.setHostName("192.168.0.20");
    redisConfig.setPort(6379);

    return new JedisConnectionFactory(redisConfig);

}

스프링 부트2에서부터는 Jedis를 지원하지 않는다고 하여, 스프링 버전을 낮추거나 아니면 Lettuce로 바꿔야한다고 하여 나는 후자의 방법을 선택하였다. 그리고 나서 어플리케이션을 실행시켰더니 Factory method 'redisConnectionFactory' threw exception; nested exception is java.lang.NoClassDefFoundError: io/lettuce/core/AbstractRedisClient 

이런 에러를 뱉었다.

 

알고보니 빌드의 낮은 버전의 충돌때문이라고 한다.

build.graddle에 아래의 임플리멘테이션을 추가해주었다.

implementation 'io.lettuce:lettuce-core:6.2.1.RELEASE'

처음에 추가했을때는 코어5 버전이었는데 업그레이드 할 수 있는 표시가 떠서 최신버전으로 업그레이드 하여 빌드하였다.

그리고 나서 어플리케이션을 돌렸더니 잘 돌아간다. 헤헹

반응형
LIST