spring-data-redis用配置类连接时,抛异常Cannot get Jedis connection; nested exception is java.lang.NullPointerE

量化策略分享之ST股弱转强,回测年化123% 本策略的核心是精选ST股票,国九条过滤,防止直接暴雷退市,只做ST股票的弱转强,弱转强的认定标准是前日涨停但昨日不涨停,昨日收盘价大于前一日最低价,昨日收盘价大于10日线,昨日成交量大于前一日的成交量但小于前一日成交量的10倍,股价大于1;这类股票强势,有资金介入,能获得超额收益。 阅读详情

前提:Redis服务器已经运行,且端口号,服务器地址都已经配置正常,但任然抛出无法获取连接异常

原来的代码如下:

  1. @Bean  
  2.    public JedisConnectionFactory connectionFactory(){  
  3.        JedisConnectionFactory jedisConnectionFactory = new JedisConnectionFactory();  
  4.        jedisConnectionFactory.setUsePool(true);  
  5.        jedisConnectionFactory.setPoolConfig(jedisPoolConfig());  
  6.        jedisConnectionFactory.setHostName(environment.getProperty(”redis.host”));  
  7.        jedisConnectionFactory.setPort(Integer.parseInt(environment.getProperty(”redis.port”)));  
  8.        return jedisConnectionFactory;  
  9.    }  
 @Bean
    public JedisConnectionFactory connectionFactory(){
        JedisConnectionFactory jedisConnectionFactory = new JedisConnectionFactory();
        jedisConnectionFactory.setUsePool(true);
        jedisConnectionFactory.setPoolConfig(jedisPoolConfig());
        jedisConnectionFactory.setHostName(environment.getProperty("redis.host"));
        jedisConnectionFactory.setPort(Integer.parseInt(environment.getProperty("redis.port")));
        return jedisConnectionFactory;
    }

其他配置都很正常,但是运行后会抛出空指针异常。

Request processing failed; nested exception is org.springframework.data.redis.RedisConnectionFailureException: Cannot get Jedis connection; nested exception is java.lang.NullPointerException

解决方法如下,在return前添加如下代码

  1. jedisConnectionFactory.afterPropertiesSet();  
 jedisConnectionFactory.afterPropertiesSet();
看源码便知原因:看jedis如何获取到连接的:

  1. public JedisConnection getConnection() {  
  2.         Jedis jedis = fetchJedisConnector();  
  3.         JedisConnection connection = (usePool ? new JedisConnection(jedis, pool, dbIndex) : new JedisConnection(jedis,  
  4.                 null, dbIndex));  
  5.         connection.setConvertPipelineAndTxResults(convertPipelineAndTxResults);  
  6.         return postProcessConnection(connection);  
  7.     }  
public JedisConnection getConnection() {
        Jedis jedis = fetchJedisConnector();
        JedisConnection connection = (usePool ? new JedisConnection(jedis, pool, dbIndex) : new JedisConnection(jedis,
                null, dbIndex));
        connection.setConvertPipelineAndTxResults(convertPipelineAndTxResults);
        return postProcessConnection(connection);
    }
我们看fetchJedisConnector()方法:

  1. protected Jedis fetchJedisConnector() {  
  2.         try {  
  3.             if (usePool && pool != null) {  
  4.                 return pool.getResource();  
  5.             }  
  6.             Jedis jedis = new Jedis(getShardInfo());  
  7.             // force initialization (see Jedis issue #82)  
  8.             jedis.connect();  
  9.             return jedis;  
  10.         } catch (Exception ex) {  
  11.             throw new RedisConnectionFailureException(“Cannot get Jedis connection”, ex);  
  12.         }  
  13.     }  
protected Jedis fetchJedisConnector() {
        try {
            if (usePool && pool != null) {
                return pool.getResource();
            }
            Jedis jedis = new Jedis(getShardInfo());
            // force initialization (see Jedis issue #82)
            jedis.connect();
            return jedis;
        } catch (Exception ex) {
            throw new RedisConnectionFailureException("Cannot get Jedis connection", ex);
        }
    }

如果没用用pool的话,需要用到getShardInfo()方法,而这个方法就是返回一个JedisShardInfo shardInfo。那么这个JedisShardInfo shardInfo在什么时候初始化呢?查看后发现,哈哈在这:

  1. public void afterPropertiesSet() {  
  2.         if (shardInfo == null) {  
  3.             shardInfo = new JedisShardInfo(hostName, port);  
  4.   
  5.             if (StringUtils.hasLength(password)) {  
  6.                 shardInfo.setPassword(password);  
  7.             }  
  8.   
  9.             if (timeout > 0) {  
  10.                 setTimeoutOn(shardInfo, timeout);  
  11.             }  
  12.         }  
  13.   
  14.         if (usePool) {  
  15.             this.pool = createPool();  
  16.         }  
  17.     }  
public void afterPropertiesSet() {
        if (shardInfo == null) {
            shardInfo = new JedisShardInfo(hostName, port);

            if (StringUtils.hasLength(password)) {
                shardInfo.setPassword(password);
            }

            if (timeout > 0) {
                setTimeoutOn(shardInfo, timeout);
            }
        }

        if (usePool) {
            this.pool = createPool();
        }
    }

这个方法将在所有的属性被初始化后调用。但是会在init前调用。是spring中InitializingBean接口的方法。spring-data-redis里面实现了它。在这里对shardIndo类进行了初始化。所以,我们只要在代码中添加:

  1. jedisConnectionFactory.afterPropertiesSet();  
 jedisConnectionFactory.afterPropertiesSet();
这句就可以啦。再运行一次,连接成功!

实战案例—encrypt靶场(AES固定key篇) AES是一种对称密钥加密方法,意味着加密和解密时使用相同的密钥。AES加密存在三种形式:AES-128、AES-192和AES-256,它们分别对应于三种不同的密钥长度——128位(即16字节)、192位(即24字节)和256位(即32字节)。通常情况下,密钥的长度越长,提供的安全性就越高,但相应地,加解密过程所需的时间也会增加。默认情况下,采用的是AES-128,其提供的安全性对于大多数应用来说已经足够充分。 阅读详情

相关推荐

细聊Oracle通过ODBC数据源连接SQL Server数据库

    类似文章搜索引擎上有很多,内容大致相同,今天所谓细聊是因为我在借鉴这些文章时候走了些弯路,所以写此文,为自己备忘,同时如果能为初涉此处知识点的小伙伴提供些帮助就更好了,废话不多说。    我的应用场景:    项目系统使用oracle数据库,与客户的第三方系统供应商实现资源共享,对方为sql server数据库;    我的测试开发环境为64bitwin7PC机,本机上装有64位Oracl...

xueren_83的博客 1万+

成功解决 Cannot get Jedis connection; nested exception is redis.clients.jedis.excepti

新拉取代码启动时redis报错就开始检查问题。在redis中找到cong配置文件,文件中找到 requirepass ,将前面的#放开,密码修改成自己配置的密码。在redis文件夹的地址栏输入cmd,再次输入启动命令并且指定配置文件redis-server.exe redis.windows.conf 启动redis我就是这一步没有注意导致redis报错,直接双击 redis-server.exe 启动的,没有指定配置文件。

一个会搜索的程序员 1万+

RGB接口电容触摸屏驱动(一)模块介绍

RGB接口电容触摸屏驱动(一)模块介绍

杰克拉力船长个人博客 7880

Redis中的一个异常:Cannot get Jedis connection

Redis的常见的异常如下: Cannot get Jedis connection;

技术杠精的博客 16万+

分享一个N-MOS管和P-MOS管驱动应用实例

大家好,我是『芯知识学堂』的SingleYork,今天给大家分享一下MOS管驱动相关的知识。 MOS管在电路设计中是比较常见的,按照驱动方式来分的话,有两种,即:N-MOS管和P-MOS管。MOS管跟三极管的驱动方式有点类似,但又不完全相同,那么今天笔者将会给大家简单介绍一下N-MOS管和P-MOS管的工作原理,并结合自己实际的应用来给大家分享一下如何来驱动N-MOS管和P-MOS管。 首先,我们先来看一下N-MOS管和P-MOS管分别在电路中的电气符号: 咋一看上面两个电气符号,似乎非常的相似,可能让很

『芯知识学堂』SingleYork 的博客 3万+

保姆级教程:在RK3588开发板上用MPP库实现H.264硬编码(附完整代码)

本文详细介绍了在RK3588开发板上使用MPP库实现H.264硬编码的全流程,包括环境准备、MPP库编译、编码器初始化与配置、数据输入与编码流程以及高级性能优化技巧。通过实战案例和完整代码,帮助开发者充分利用RK3588的VPU硬件加速能力,提升视频编码效率和质量。

weixin_28716769的博客 414

Redis连接异常报JedisConnectionException: Could not get a resource from the pool

问题描述 启动项目时候发现报错信息如下所示: Cannot get Jedis connection; nested exception is redis.clients.jedis.exceptions.JedisConnectionException: Could not get a resource from the pool 解决问题 首先使用telnet 192.168.0.104 6379(项目连接的Redis的地址)发现ping不通,而在其他端口可以ping通。然后在使用如下命令查看637

GalenGao 6173

单细胞测序流程(八)单细胞的marker基因转化和​GO富集分析

系列文章目录 单细胞测序流程(一)简介与数据下载 单细胞测序流程(二)数据整理 单细胞测序流程(三)质控和数据过滤——Seurat包分析,小提琴图和基因离差散点图 单细胞测序流程(四)主成分分析——PCA 单细胞测序流程(五)t-sne聚类分析和寻找marker基因 单细胞测序流程(六)单细胞的细胞类型的注释 单细胞测序流程(七)单细胞的细胞类型轨迹分析———————————————— 本期主讲内容——单细胞的maeker基因转化和​富集分析 marker基因转化是为了将基因的id和基.

qq_45478665的博客 1万+

redis使用问题一:Cannot get Jedis connection; nested exception is redis.clients.jedis.exceptions.JedisExce...

本文使用的是spring-data-redis 首先说下redis最简单得使用,除去配置。 需要在你要使用得缓存得地方,例如mybatis在mapper.xml中加入: <cache eviction="LRU" type="cn.jbit.cache.RedisCache"/> 由于是第一次使用redis,再调试代码得时候报错:Cannot get Jedis co...

denghe4720的博客 3万+

SOEM主站开发篇(1):移植SOEM主站到Linux开发板

详细介绍了SOEM主站源码移植到Linux开发板上的步骤,同时演示了如何使用Linux开发板获取EtherCAT从站的PDO映射信息。

kevin1499的博客 2399

龙芯2K1000 OTG双模驱动深度解析

是Synopsys公司开发的USB 2.0 OTG控制器IP核,龙芯2K1000内置该IP,作为唯一的OTG控制器(PCI Dev4 Func0),物理基地址0x40000000。核心能力:同时支持Host主机模式(接U盘/键盘)、Device设备模式(虚拟串口ttyGS0)、OTG双模自动切换速率驱动路径:内核源码PMON:启用otg0设备树内核:开启HOSTPERIPHERALG_SERIAL启动参数脚本:sysfs角色切换+开机自启Host按以上配置,龙芯2K1000 DWC2 OTG可完美实现。

weixin_44932366的博客 377

解决Cannot get Jedis connection; nested exception is redis.clients.jedis.exception...报错

解决Cannot get Jedis connection; nested exception is redis.clients.jedis.exception报错

qq_41277195的博客 4640

【华为OD技术面试手撕真题】134、爬楼梯 | 手撕真题+思路参考+代码解析(C & C++ & Java & Python & JS)

【华为OD技术面试手撕真题】134、爬楼梯 | 手撕真题+思路参考+代码解析(C & C++ & Java & Python & JS) 华为od机试,华为od机试真题,华为od机试E卷,华为odE卷,华为od机试真题E卷,华为OD,华为OD机试,华为OD机试真题,华为od机考,华为od机试D卷,华为od机试真题D卷,华为od手撕代码,华为od,华为od机试C卷,华为od e卷,华为2025e卷,od机试,2025E卷,华为OD机试E卷,什么是华为od,华为od介绍,全面了解华为od,2025华为od,如何

KJ.JK 2185

项目启动报错:Cannot get Jedis connection; nested exception is redis.clients.jedis.exceptions.JedisExceptio

报错:` 2020-02-12 14:13:02:414 [RMI TCP Connection(8)-127.0.0.1] ERROR: 初始化系统配置参数信息失败 org.springframework.data.redis.RedisConnectionFailureException: Cannot get Jedis connection; nested exception is red...

hkm的博客 8818

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

RedisConnectionFailureException:Cannot get Jedis connection;Could not get a resource from the pool解决

完整报错信息 org.springframework.data.redis.RedisConnectionFailureException: Cannot get Jedis connection; nested exception is redis.clients.jedis.exceptions.JedisConnectionException: Could not get a resource from the pool 因此,我们只需对症下药即可.........

杨大仙 6387

贝叶斯统计 [韦来生编]

贝叶斯(Bayes)统计是近几十年来迅速发展起来的数理统计的一个重要分支。贝叶斯方法与经典统计方法的主要不同之处是进行统计推断时除了利用样本信息外,还要利用参数的先验信息,因此可以提高统计推断或统计决策的效果。它在经济、金融、生物、医学、自然科学和社会科学等许多领域具有广泛的应用。贝叶斯方法的研究已渗透到了统计学的几乎所有领域。作者在给中国科学技术大学概率论与数理统计专业本科生开设的“数理统计”课程中有一章专门讲授“贝叶斯方法和统计决策理论”,近十年来也给中国科学技术大学概率统计专业研究生开设过几次“贝叶斯分析”课。本书是在对过去讲稿的内容作了适当的增减和调整的基础上完成的。  本书共分六章。第1章是绪论,介绍了贝叶斯统计的若干基本概念,同时对必要的数理统计的基础知识有重点地作了回顾。第二章介绍了确定先验分布的若干可供选择的方法。第三章介绍了几类常见统计模型参数的后验分布的主要结果和计算方法。第四章和第五章分别介绍了“贝叶斯统计推断”和“贝叶斯统计决策”的内容。第六章介绍了贝叶斯统计计算的若干方法,包括蒙特卡洛方法和马尔可夫链蒙特卡洛(MCMC)方法以及相关统计软件的简介。本书的每一章附右大量的例题和习题,书末附有常用的几个表格和部分习题解答供读者查用。  大约可在54学时内讲授本书的第1章至第六章的主要内容,教师可根据学时需要选讲本书第1章至第六章的部分内容。书中标“*”号的章节可略去不讲,留给读者作为阅读材料。第六章例题中的R代码和部分例题的数据文件等可从作者个人主页下载。  作者在编写本书的过程中参考了J.O.Berger教授的《统计决策论及贝叶斯分析》和茆诗松教授编写的《贝叶斯统计》等书中的一些内容,以及《贝叶斯分析》一书中由张伟平博士编写的有关贝叶斯统计计算的一些内容。在此表示衷心感谢。  本书编写准备过程中,中国科学技术大学统计与金融系的几个研究生帮助完成了本书部分中文的录入和排版,作者对他们的辛勤工作表示真诚的感谢。高等教育出版社为本书的出版给予了大力支持。在此一并致谢。

Cannot get Jedis connection; nested exception is redis.clients.jedis.excepti解决方法

redis没连上,重启redis服务即可 再配合RedisConnectionFailureException报错,更加确定redis没启动了.

张子豪的博客 9521

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

解决报错:Cannot get Jedis connection

解决报错:Cannot get Jedis connection

weixin_46273839的博客 2746

Cannot get Jedis connection; nested exception is redis.clients.jedis.exceptions.JedisConnectionExcep

Cannot get Jedis connection; nested exception is redis.clients.jedis.exceptions.JedisConnectionException: Could not get a resource from the pool org.springframework.data.redis.RedisConnectionFailureEx...

u014594604的博客 6337

错误:Cannot read Redis info; nested exception is java.lang.IllegalArgumentException: Malformed \uxxxx

org.springframework.data.redis.RedisSystemException: Cannot read Redis info; nested exception is java.lang.IllegalArgumentException: Malformed \\uxxxx encoding.

XWrabbit的博客 2922

springframework.data.redis.RedisConnectionFailureException: Cannot get Jedis connection

报错如下:org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'enableRedisKeyspaceNotificationsInitializer' defined in class path resource [org/springframework/session/da...

fengge18306的博客 8217

org.springframework.data.redis.RedisConnectionFailureException: Cannot get Jedis connection

项目启动后,控制台报如下错误: org.springframework.data.redis.RedisConnectionFailureException: Cannot get Jedis connection; nested exception is redis.clients.jedis.exceptions.JedisConnectionException: Could not get ...

听风便是雨的博客 9589

使用redis时前端报错Cannot get Jedis connection; nested exception is redis.clients.jedis.exceptions.

redis常见错误Cannot get Jedis connection解决方法

electric_pig的博客 4629

【笔记】springBoot连接Redis报错“Cannot get Jedis connection”

springboot2.7.18 格式与3.x不同。可以查看 autoconfigure这个包的配置。 例如 spring-boot-autoconfigure-2.7.18.jar!\org\springframework\boot\autoconfigure\data\redis\RedisProperties.class @ConfigurationProperties(prefix = “spring.redis”)

kyujyu的博客 609

使用Springboot开发项目过程中Redis中的一个异常:Cannot get Jedis connection

有两种方法修改密码,一种是设置它的windows.conf文件里面的require pass (你的密码),将那一行取消注释。作为一个经典的倒霉蛋,基本上所有bug都能被我碰到,并且单纯使用网上的方案还不一定能成功,比如这个。如果启动好了仍旧报错,那就是jedis没连接上的问题,我们可以先修改redis的密码试试。为了保险,你可以两种方法同时使用,就可以解决掉因为密码不匹配无法连接到jedis的情况。首先看报错,是jedis连接的问题,这样就排除掉本机redis的问题。第二种使用命令行更改密码。

m0_56957320的博客 1499

Redis报错org.springframework.data.redis.RedisConnectionFailureException

尝试使用Redis作为项目缓存 结果启动项目后,访问标注缓存注解的方法时报错 缓存注解的方法: @Cacheable(value = "test", key = "#killId",cacheManager = "ItemKillCacheManager") public ItemKill getIKilltem(Integer killId){ ItemKill itemKill=itemKillMapper.selectByIdV2(killId); ret.

qq_42168543的博客 7444

Cannot get Jedis connection; nested exception is java.lang.NullPointerException

前提:Redis服务器已经运行,且端口号,服务器地址都已经配置正常,但任然抛出无法获取连接异常 原来的代码如下: [java] view plain copy @Bean     public JedisConnectionFactory connectionFactory(){         JedisConnectionFactory jedisConnect

qq_22978533的博客 3965
上一篇: SpringMVC根据条件跳转页面或者返回数据类型
下一篇: spring-data-redis 操作
光与热
博客等级 码龄11年 55粉丝 126原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值