zqs164 2018-06-16 08:05 采纳率: 60%
浏览 11571
已结题

spring、redis整合,实例化ConnectionFactory出错

下面是我配置connectionFactory的代码

 @Bean
    public JedisConnectionFactory connectionFactory() throws IOException{
        Properties p = new Properties();
        // 加载redis配置文件
        p.load(CreateBeans.class.getResourceAsStream("/redis.properties"));
        // 配置JedisPool
        JedisPoolConfig poolConfig = new JedisPoolConfig();
        poolConfig.setMaxIdle(Integer.parseInt(p.getProperty("redis.maxIdle")));
        poolConfig.setMaxTotal(Integer.parseInt(p.getProperty("redis.maxTotal")));
        poolConfig.setMaxWaitMillis(Integer.parseInt(p.getProperty("redis.maxWaitMillis")));
        poolConfig.setTestOnBorrow(Boolean.parseBoolean(p.getProperty("redis.testOnBorrow")));

        // 配置连接信息
        RedisStandaloneConfiguration standaloneConfig = new RedisStandaloneConfiguration();
        standaloneConfig.setHostName(p.getProperty("redis.host"));
        standaloneConfig.setPort(Integer.parseInt(p.getProperty("redis.port")));
        String pass = p.getProperty("redis.pass");
        if(pass != null && !pass.equals(""))
            standaloneConfig.setPassword(RedisPassword.of(pass));
        else
            standaloneConfig.setPassword(RedisPassword.none());

        DefaultJedisClientConfigurationBuilder builder = (DefaultJedisClientConfigurationBuilder) JedisClientConfiguration.builder();
        builder.usePooling();
        builder.poolConfig(poolConfig);
        builder.connectTimeout(Duration.ofMillis(Integer.parseInt(p.getProperty("redis.connTimeout"))));
        builder.readTimeout(Duration.ofMillis(Integer.parseInt(p.getProperty("redis.readTimeout"))));
        JedisClientConfiguration clientConfig = builder.build();

        return new JedisConnectionFactory(standaloneConfig, clientConfig);
    }

所引用的包
所引用的包
以上为引用的包,当然有些是配置redis不需要的。
下面是错误信息,

Caused by: java.lang.NoClassDefFoundError: Could not initialize class org.springframework.data.redis.connection.jedis.JedisConnectionFactory
    at com.dimbbs.beans.CreateBeans.connectionFactory(CreateBeans.java:43)
    at com.dimbbs.beans.CreateBeans$$EnhancerBySpringCGLIB$$6ae8678c.CGLIB$connectionFactory$0(<generated>)
    at com.dimbbs.beans.CreateBeans$$EnhancerBySpringCGLIB$$6ae8678c$$FastClassBySpringCGLIB$$d2c7309d.invoke(<generated>)
    at org.springframework.cglib.proxy.MethodProxy.invokeSuper(MethodProxy.java:228)
    at org.springframework.context.annotation.ConfigurationClassEnhancer$BeanMethodInterceptor.intercept(ConfigurationClassEnhancer.java:361)
    at com.dimbbs.beans.CreateBeans$$EnhancerBySpringCGLIB$$6ae8678c.connectionFactory(<generated>)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.lang.reflect.Method.invoke(Unknown Source)
    at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:154)
    ... 48 more

是不是我缺少什么包?

  • 写回答

5条回答 默认 最新

  • 关注

    jedis客户端版本过高,

    将jedis的版本号换低版本就好了

    评论

报告相同问题?

悬赏问题

  • ¥30 这是哪个作者做的宝宝起名网站
  • ¥60 版本过低apk如何修改可以兼容新的安卓系统
  • ¥25 由IPR导致的DRIVER_POWER_STATE_FAILURE蓝屏
  • ¥50 有数据,怎么建立模型求影响全要素生产率的因素
  • ¥50 有数据,怎么用matlab求全要素生产率
  • ¥15 TI的insta-spin例程
  • ¥15 完成下列问题完成下列问题
  • ¥15 C#算法问题, 不知道怎么处理这个数据的转换
  • ¥15 YoloV5 第三方库的版本对照问题
  • ¥15 请完成下列相关问题!