[SPRING] Spring Redis를 사용할 때 JedisConnection에 NoClassDefFound 오류가 나타나는 이유는 무엇입니까?
SPRINGSpring Redis를 사용할 때 JedisConnection에 NoClassDefFound 오류가 나타나는 이유는 무엇입니까?
안녕하세요, 봄 방경을 사용하려고 할 때
java.lang.NoClassDefFoundError: Could not initialize class org.springframework.data.redis.connection.jedis.JedisConnection
redis를 사용하여 모든 연결 작업을 수행 할 때 예외가 발생합니다. 내 구성 방법은 다음과 같습니다.
@Bean
public RedisConnectionFactory jedisConnFactory() {
JedisConnectionFactory jedisConnectionFactory = new JedisConnectionFactory();
jedisConnectionFactory.setHostName("XXX.XX.XX.XXX");
jedisConnectionFactory.setPort(6381);
jedisConnectionFactory.setUsePool(true);
jedisConnectionFactory.afterPropertiesSet();
return jedisConnectionFactory;
아무도 내가 왜이 예외를 얻는 지 안다면 제안 해주십시오.
해결법
-
==============================
1.거의 하루를 낭비하고 그 항아리가 이미 클래스 경로에 있다는 것을 알게되면, 나는 그것을 더 디버깅하고 자바의 반사 메커니즘이 이미 "메소드 목록"에있는 메소드를 찾으려고 할 때 찾을 수 없다는 것을 발견했다. Spring Data Redis (1.5.0.RELEASE)와 호환되지 않는 Jedis 버전 (2.7.2) 간의 일부 버전 충돌로 인해이 문제는 이미이 링크에서 답변되었습니다 :: Jedis와 스프링 데이터 redis 버전 충돌
거의 하루를 낭비하고 그 항아리가 이미 클래스 경로에 있다는 것을 알게되면, 나는 그것을 더 디버깅하고 자바의 반사 메커니즘이 이미 "메소드 목록"에있는 메소드를 찾으려고 할 때 찾을 수 없다는 것을 발견했다. Spring Data Redis (1.5.0.RELEASE)와 호환되지 않는 Jedis 버전 (2.7.2) 간의 일부 버전 충돌로 인해이 문제는 이미이 링크에서 답변되었습니다 :: Jedis와 스프링 데이터 redis 버전 충돌
-
==============================
2.JedisPoolConfig는 Jedis Configuration을 사용할 때 필요합니다. 스프링 부트 2.0에서 spring-boot-startter-data-redis는 Jedis 대신 기본적으로 Lettuce 의존성을 제공합니다. Jedis 구성을 사용하려면 다음과 같이 Lettuce를 제외하고 Jedis를 추가하십시오.
JedisPoolConfig는 Jedis Configuration을 사용할 때 필요합니다. 스프링 부트 2.0에서 spring-boot-startter-data-redis는 Jedis 대신 기본적으로 Lettuce 의존성을 제공합니다. Jedis 구성을 사용하려면 다음과 같이 Lettuce를 제외하고 Jedis를 추가하십시오.
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId> <exclusions> <exclusion> <groupId>io.lettuce</groupId> <artifactId>lettuce-core</artifactId> </exclusion> </exclusions> </dependency> <dependency> <groupId>redis.clients</groupId> <artifactId>jedis</artifactId> </dependency>
-
==============================
3.호환 버전으로 변경 :
호환 버전으로 변경 :
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId> <version>2.0.4.RELEASE</version> </dependency> <dependency> <groupId>redis.clients</groupId> <artifactId>jedis</artifactId> <version>2.9.0</version> </dependency>
-
==============================
4.org.springframework.data.redis.connection.jedis.JedisConnection 클래스가 클래스 경로에 없습니다. 이 종속성을 사용할 수 있는지, 누락 된 항목이 있는지 확인하십시오.
org.springframework.data.redis.connection.jedis.JedisConnection 클래스가 클래스 경로에 없습니다. 이 종속성을 사용할 수 있는지, 누락 된 항목이 있는지 확인하십시오.
누락 된 jar 파일은 Maven 저장소 redisis 페이지 에서처럼 redis 버전을 제공해야합니다. 따라서 spring-data-redist- (your-version) .jar 형식이어야합니다.
from https://stackoverflow.com/questions/33128318/why-getting-noclassdeffound-error-for-jedisconnection-when-using-spring-redis by cc-by-sa and MIT license
'SPRING' 카테고리의 다른 글
[SPRING] Spring 부트 애플리케이션의 콘솔에서 조건 평가 보고서를 제외하려면 어떻게합니까? (0) | 2019.07.18 |
---|---|
[SPRING] @Configuration이 있고 클래스가없는 클래스 내부의 @Bean (0) | 2019.07.18 |
[SPRING] 스프링 MVC : @RequestBody VS @ModelAttribute (0) | 2019.07.18 |
[SPRING] Spring application.properties 파일에서 표현식 사용하기 (0) | 2019.07.18 |
[SPRING] 스프링 부트 2 다중 데이터 소스가 스키마 초기화 (0) | 2019.07.18 |