복붙노트

[REDIS] JedisPoolConfig는 GenericObjectPoolConfig에 할당 할 수없는

REDIS

JedisPoolConfig는 GenericObjectPoolConfig에 할당 할 수없는

나는 Heroku가에서 호스팅되는 스프링 기반의 자바 웹 응용 프로그램이 있습니다. 나는 레디 스 구현을 사용하여 봄 캐싱 추상화를 활용하려고 시도하고있다. 서버가 시작되면, 내가 말하는 오류가 발생합니다 :

Type 'redis/clients/jedis/JedisPoolConfig' (current frame, stack[3]) is not assignable to 'org/apache/commons/pool2/impl/GenericObjectPoolConfig'
@Bean
     RedisConnectionFactory jedisConnectionFactory() throws Exception {
         URI redisUri =  new URI(System.getenv("REDISCLOUD_URL"));
         JedisConnectionFactory redisConnectionFactory = new JedisConnectionFactory();
         redisConnectionFactory.setHostName(redisUri.getHost());
         redisConnectionFactory.setPort(redisUri.getPort());
         redisConnectionFactory.setPassword(redisUri.getUserInfo().split(":",2)[1]);
         redisConnectionFactory.setUsePool(true);
         return redisConnectionFactory;
     }

 @Bean
 RedisTemplate<Object, Object> redisTemplate()  {
     RedisTemplate<Object, Object> redisTemplate = new RedisTemplate<Object, Object>();
     try {
        redisTemplate.setConnectionFactory(jedisConnectionFactory());
    } catch (Exception e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
     return redisTemplate;
 }
@Override
@Bean
public CacheManager cacheManager() {
    // configure and return an implementation of Spring's CacheManager SPI
    RedisCacheManager manager = new RedisCacheManager(redisTemplate());
    List<String> caches = new ArrayList<String>();
    caches.add("Suppliers");
    caches.add("Manufacturer");
    caches.add("Sheeting");
    caches.add("SignTypeFlat");
    manager.setCacheNames(caches);
    return manager;
}
 Caused by: org.springframework.beans.factory.BeanDefinitionStoreException: Factory m ethod [org.springframework.data.redis.connection.RedisConnectionFactory com.signInventory.config.ProdDataSourceConfiguration.jedisConnectionFactory() throws java.lang.Exception] threw exception; nested exception is java.lang.VerifyError: Bad type on operand stack Exception Details:   Location:
    org/springframework/data/redis/connection/jedis/JedisConnectionFactory.afterPropertiesSet()V @109: invokespecial   Reason:
    Type 'redis/clients/jedis/JedisPoolConfig' (current frame, stack[3]) is not assignable to 'org/apache/commons/pool2/impl/GenericObjectPoolConfig'   Current Frame:
    bci: @109
    flags: { }
    locals: { 'org/springframework/data/redis/connection/jedis/JedisConnectionFactory' }
    stack: { 'org/springframework/data/redis/connection/jedis/JedisConnectionFactory', uninitialized 73, uninitialized 73, 'redis/clients/jedis/JedisPoolConfig', 'java/lang/String', integer, integer, 'java/lang/String' }   Bytecode:
    0000000: 2ab4 000d c700 3d2a bb00 1759 2ab4 0003
    0000010: 2ab4 0004 b700 18b5 000d 2ab4 0019 b800
    0000020: 1a99 000e 2ab4 000d 2ab4 0019 b600 1b2a
    0000030: b400 059e 000e 2ab4 000d 2ab4 0005 b600
    0000040: 1c2a b400 0699 002e 2abb 001d 592a b400
    0000050: 0a2a b400 0db6 001e 2ab4 000d b600 1f2a
    0000060: b400 0db6 0020 2ab4 000d b600 21b7 0022
    0000070: b500 07b1   Stackmap Table:
    same_frame(@47)
    same_frame(@65)
    same_frame(@115) at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:181) at org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod(ConstructorResolver.java:578) ... 36 more Caused by: java.lang.VerifyError: Bad type on operand stack Exception Details:   Location:
    org/springframework/data/redis/connection/jedis/JedisConnectionFactory.afterPropertiesSet()V @109: invokespecial   Reason:
    Type 'redis/clients/jedis/JedisPoolConfig' (current frame, stack[3]) is not assignable to 'org/apache/commons/pool2/impl/GenericObjectPoolConfig'   Current Frame:
    bci: @109
    flags: { }
    locals: { 'org/springframework/data/redis/connection/jedis/JedisConnectionFactory' }
    stack: { 'org/springframework/data/redis/connection/jedis/JedisConnectionFactory', uninitialized 73, uninitialized 73, 'redis/clients/jedis/JedisPoolConfig', 'java/lang/String', integer, integer, 'java/lang/String' }   Bytecode:
    0000000: 2ab4 000d c700 3d2a bb00 1759 2ab4 0003
    0000010: 2ab4 0004 b700 18b5 000d 2ab4 0019 b800
    0000020: 1a99 000e 2ab4 000d 2ab4 0019 b600 1b2a
    0000030: b400 059e 000e 2ab4 000d 2ab4 0005 b600
    0000040: 1c2a b400 0699 002e 2abb 001d 592a b400
    0000050: 0a2a b400 0db6 001e 2ab4 000d b600 1f2a
    0000060: b400 0db6 0020 2ab4 000d b600 21b7 0022
    0000070: b500 07b1   Stackmap Table:
    same_frame(@47)
    same_frame(@65)
    same_frame(@115) at com.signInventory.config.ProdDataSourceConfiguration.jedisConnectionFactory(ProdDataSourceConfiguration.java:46) at com.signInventory.config.ProdDataSourceConfiguration$$EnhancerByCGLIB$$258faa2b.CGLIB$jedisConnectionFactory$8(<generated>) at com.signInventory.config.ProdDataSourceConfiguration$$EnhancerByCGLIB$$258faa2b$$FastClassByCGLIB$$b4f3aedd.invoke(<generated>) at org.springframework.cglib.proxy.MethodProxy.invokeSuper(MethodProxy.java:228) at org.springframework.context.annotation.ConfigurationClassEnhancer$BeanMethodInterceptor.intercept(ConfigurationClassEnhancer.java:286) at com.signInventory.config.ProdDataSourceConfiguration$$EnhancerByCGLIB$$258faa2b.jedisConnectionFactory(<generated>) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:606) at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:160) ... 37 more

어떤 도움을 크게 감상 할 수있다.

감사!

해결법

  1. ==============================

    1.나는 봄 데이터 레디 스의 V1.2.1-RELEASE로 업그레이드 정확히 같은 문제가 있었다. v2.4.2을 - 나는 최신 버전으로 Jedis를 업그레이드 한 후 문제를 해결했다. 당신은 메이븐을 사용하는 경우 다음 종속성을 확인합니다.

    나는 봄 데이터 레디 스의 V1.2.1-RELEASE로 업그레이드 정확히 같은 문제가 있었다. v2.4.2을 - 나는 최신 버전으로 Jedis를 업그레이드 한 후 문제를 해결했다. 당신은 메이븐을 사용하는 경우 다음 종속성을 확인합니다.

    <properties>
        <spring.data.redis>1.2.1.RELEASE</spring.data.redis>
        <jedis>2.4.2</jedis>
    </properties>
    
    <dependency>
        <groupId>org.springframework.data</groupId>
        <artifactId>spring-data-redis</artifactId>
        <version>${spring.data.redis}</version>
    </dependency>
    <dependency>
        <groupId>redis.clients</groupId>
        <artifactId>jedis</artifactId>
        <version>${jedis}</version>
    </dependency>
    

    도움이 되었기를 바랍니다 :)

  2. ==============================

    2.당신은 아파치 평민 - pool2 라이브러리에 대한 참조를 추가해야합니다. :이 추가 단지 사건이었다, 그래서 우리는, SBT를 사용하고 - 나는 스칼라 프로젝트에 같은 문제가 있었다

    당신은 아파치 평민 - pool2 라이브러리에 대한 참조를 추가해야합니다. :이 추가 단지 사건이었다, 그래서 우리는, SBT를 사용하고 - 나는 스칼라 프로젝트에 같은 문제가 있었다

    "org.apache.commons" % "commons-pool2" % "2.0"
    

    당신이 자바를 사용하는 것처럼 내가 더 같이 아마 기대 그래서, 당신은 메이븐을 사용하고있는 (검증되지 않은 - 소금 한 스푼으로 가져가!)

    <dependency>
        <groupId>org.apache.commons</groupId>
        <artifactId>commons-pool2</artifactId>
        <version>2.0</version>
    </dependency>
    
  3. ==============================

    3.분명히, 이것은 JDK 컴파일러 버그 # 8006684입니다

    분명히, 이것은 JDK 컴파일러 버그 # 8006684입니다

    또한 taskdef java.lang.VerifyError 참조 : 피연산자 스택에 나쁜 유형을 팀 CITY 빌드를 실행할 때

  4. ==============================

    4.경우에는 누군가가 여기 2.x.x을 설명 스레드가되는 봄 부팅 1.5.x 이하에서 인해 마이그레이션에 직면. 또한이 링크를 참조하시기 바랍니다

    경우에는 누군가가 여기 2.x.x을 설명 스레드가되는 봄 부팅 1.5.x 이하에서 인해 마이그레이션에 직면. 또한이 링크를 참조하시기 바랍니다

  5. from https://stackoverflow.com/questions/22704518/jedispoolconfig-is-not-assignable-to-genericobjectpoolconfig by cc-by-sa and MIT license