Redis 사용을 위한 설정 중 다음과 같은 문제가 발생했다.
비밀번호가 String이면 안되고 RedisPassword 타입이어야 한다.
처음에는 단순히 String 타입의 password를 타입 캐스트 연산자를 사용해 다음과 같이 RedisPassword로 변경을 시도했다.
redisStandaloneConfiguration.password = password as RedisPassword
그리고 다음과 같이 ClassCastException이 발생했다.
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'redisConnectionFactory' defined in class path resource [com/noreabang/strawberryrabbit/infra/email/RedisConfig.class]: Failed to instantiate [org.springframework.data.redis.connection.lettuce.LettuceConnectionFactory]: Factory method 'redisConnectionFactory' threw exception with message: class java.lang.String cannot be cast to class org.springframework.data.redis.connection.RedisPassword (java.lang.String is in module java.base of loader 'bootstrap'; org.springframework.data.redis.connection.RedisPassword is in unnamed module of loader 'app')
Caused by: org.springframework.beans.BeanInstantiationException: Failed to instantiate [org.springframework.data.redis.connection.lettuce.LettuceConnectionFactory]: Factory method 'redisConnectionFactory' threw exception with message: class java.lang.String cannot be cast to class org.springframework.data.redis.connection.RedisPassword (java.lang.String is in module java.base of loader 'bootstrap'; org.springframework.data.redis.connection.RedisPassword is in unnamed module of loader 'app')
Caused by: java.lang.ClassCastException: class java.lang.String cannot be cast to class org.springframework.data.redis.connection.RedisPassword (java.lang.String is in module java.base of loader 'bootstrap'; org.springframework.data.redis.connection.RedisPassword is in unnamed module of loader 'app')
RedisStandaloneConfiguration 클래스 내부를 확인해보니 password의 타입이 RedisPassword로 되어 있었다.
이번에도 내부 코드 확인을 위해 RedisPassword 타입을 클릭해보면 다음과 같은 코드를 볼 수 있다.
위에서 본 RedisPassword 클래스의 of 메서드를 사용해 다음과 같이 코드를 작성하면 정상적으로 동작하는 것을 볼 수 있다.
redisStandaloneConfiguration.password = RedisPassword.of(password)
'TIL(Today I Learned)' 카테고리의 다른 글
TIL - React, Spring Boot로 카카오 소셜 로그인 구현 STEP 2 (0) | 2024.05.30 |
---|---|
TIL - Redis: java.net.UnknownHostException (0) | 2024.05.30 |
TIL - React, Spring Boot로 카카오 소셜 로그인 구현 STEP 1 (0) | 2024.05.29 |
TIL - 로그인 후 Jwt 토큰으로 회원 정보를 가져올 때 NULL (0) | 2024.05.28 |
TIL - Swagger ui에서 Json 데이터와 첨부 파일 업로드 시도 (0) | 2024.05.27 |