背景:向redis写入字符串方法,采用jedis方法。一般正常情况下没有问题,该问题出现的概率非常小,极低几个月一次吧,不知道原因无法模拟出来。方法段:
public boolean setData(String key,String value) { ShardedJedis jedis =null; boolean borrowOrOprSuccess = true; try { jedis=shardedJedisPool.getResource(); jedis.set(key,value); return true; } catch (Exception e) { e.printStackTrace(); if(jedis!=null) shardedJedisPool.returnBrokenResource(jedis); logger.info(Utils.getStackMsg(e)); return false; } finally{ if (borrowOrOprSuccess){ shardedJedisPool.returnResource(jedis); } else{ logger.info("jedis==null;shardedJedisPool.getResource()获取连接资源失败!"); } } }
目前没有多线程并发的场景,一般情况下正常无误。有的时候导致 org.apache.commons.pool.impl.GenericObjectPool.invalidateObject(Ljava/lang/Object;)V的错误。这个方法体出现异常catch不住,比exception还要高的错误,找不到方法,从jar里看,的确没有这个方法,是否是版本导致的错误?
请有过类似的经验的高手出来解答一下,什么时候去invalidateObject方法,这样就知道什么时候发生这个事件了,就能找到根本的原因。
相关推荐
在Java编程中,`java.lang.NoSuchMethodError`异常是一个运行时异常,通常发生在程序试图执行一个不存在的方法时。这个异常的出现通常意味着编译时和运行时的类版本不匹配,或者是在编译期间存在而运行时不存在的...
java.lang.NoSuchMethodError: redis.clients.jedis.ScanResult.getStringCursor()Ljava/lang/String; at org.crazycake.shiro.WorkAloneRedisManager.keys(WorkAloneRedisManager.java:149) at org.crazycake....
<groupId>org.apache.commons <artifactId>commons-pool2 <version>2.4.2 ``` 然后,在Java代码中初始化Jedis实例并设置连接池配置: ```java import redis.clients.jedis.JedisPool; import redis.clients....
Apache Commons Pool是Apache软件基金会的一个项目,它提供了一个通用的对象池接口和实现,可以用于创建任何可池化的对象。在Jedis中,Commons Pool库被用来管理Redis连接的池化。通过连接池,应用程序可以在需要时...
jedis.auth("192.168akeiekekKKDJEikekEJkeu^&&%%$&#*($#&^$&^#$*((BNGGyjekeuh{}jejekekej:"); ping(jedis); hashBytesSave(jedis); hashBytesGet(jedis); // ListCommandsTest jedis.close();...
标题中的"jedis-3.2.0.jar + commons-pool2-2.6.2.jar"提到了两个关键的Java库:Jedis和Apache Commons Pool2。Jedis是Java编程语言中广泛使用的Redis客户端,而Apache Commons Pool2则是一个对象池实现,用于有效地...
**标题与描述解析** 标题"jedis-2.9.0.jar和commons-pool2-2.6.0.jar下载...通过理解和正确使用Jedis及Apache Commons Pool,Java开发者可以高效地与Redis数据库进行交互,实现数据存储、检索和缓存等多种功能。
总结来说,"jedis-3.3.0.jar"和"commons-pool2-2.9.0.jar"的结合使用,为Java开发者提供了高效、稳定的Redis连接和资源管理方案,通过Jedis的API可以便捷地操作Redis,而Apache Commons Pool 2则确保了连接资源的...
在Java开发中,为了与Redis进行交互,通常需要引入相关的Java库,如`commons-pool.jar`和`jedis-1.5.2.jar`。 `commons-pool.jar`是Apache Commons的一个组件,全称为Apache Commons Pool,它提供了一种对象池化...
commons-pool2-2.3.jar commons-pool2.jar是一个十分常用的jar文件,commons-pool2.jar文件适用于java开发中的与连接池进行连接部分使用,如果您缺少这个jar文件马上下载commons-pool2.jar吧
Apache Commons Pool 2是Apache软件基金会提供的一个通用对象池库,用于管理和复用对象,包括Jedis连接。在这个案例中,commons-pool2-2.4.2.jar是Jedis连接池的依赖,它为Jedis提供了一个连接管理框架,确保高效地...
`commons-pool2-2.4.2.jar`是Apache Commons Pool的第2版,这是一个通用的对象池服务。对象池设计的目的是减少创建和销毁对象的开销,特别是在频繁创建和销毁时。在Redis连接池中,它被用来管理Jedis实例,避免了...
import org.apache.commons.pool2.impl.GenericObjectPoolConfig; public class RedisClient { private JedisPool pool; public RedisClient(String host, int port) { GenericObjectPoolConfig config = new ...
jedis-2.8.0.jar 、jedis-2.1.0.jar 资源可靠 edis-2.8.0.jar 、jedis-2.1.0.jar 资源可靠 jedis-2.8.0.jar 、jedis-2.1.0.jar 资源可靠 jedis-2.8.0.jar 、jedis-2.1.0.jar 资源可靠
标题中的"jedis-2.1.0.jar"和"commons-pool-1.5.4.jar"分别指的是两个Java库文件,它们是用于在Java应用程序中与Redis内存数据存储进行交互的重要工具。Redis是一个高性能的键值数据库,广泛应用于缓存、消息中间件...
import org.apache.commons.pool2.impl.GenericObjectPoolConfig; ``` 2. 创建JedisPoolConfig配置对象: ```java GenericObjectPoolConfig poolConfig = new GenericObjectPoolConfig(); poolConfig....
此资源为Java连接redis的工具...注意点二:JedisPoolConfig 连接池 引用的是org.apache.commons.pool1.impl.GenericObjectPoolConfig;部分功能没有; 正确重新引用 org.apache.commons.pool2.jar。 详细请阅览相关资料
jedis-2.8.0.jar