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

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的版本号换低版本就好了

    评论

报告相同问题?

悬赏问题

  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 保护模式-系统加载-段寄存器