首页

解决java通过jedis连接redis的哨兵模式报"java.lang.NoClassDefFoundError: org/apache/commons/pool2/PooledObjectFactory"问题

标签:NoClassDefFoundError,PooledObjectFactory,commons-pool2-2.0.jar,jedis     发布时间:2019-04-13   

一、异常描述

通过java的jedis(2.6.0)驱动包连接redis哨兵模式时,报"java.lang.ClassNotFoundException: org.apache.commons.pool2.PooledObjectFactory"异常,详情日志如下>>

Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/commons/pool2/PooledObjectFactory@b@	at com.xwood.redis.sentinel.RedisSentinelTest.main(RedisSentinelTest.java:20)@b@Caused by: java.lang.ClassNotFoundException: org.apache.commons.pool2.PooledObjectFactory@b@	at java.net.URLClassLoader$1.run(URLClassLoader.java:366)@b@	at java.net.URLClassLoader$1.run(URLClassLoader.java:355)@b@	at java.security.AccessController.doPrivileged(Native Method)@b@	at java.net.URLClassLoader.findClass(URLClassLoader.java:354)@b@	at java.lang.ClassLoader.loadClass(ClassLoader.java:425)@b@	at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)@b@	at java.lang.ClassLoader.loadClass(ClassLoader.java:358)@b@	... 1 more

二、解决方法

因项目缺少commons-pool2依赖包,这边下载commons-pool2-2.2.jar版本

<dependency>@b@    <groupId>org.apache.commons</groupId>@b@    <artifactId>commons-pool2</artifactId>@b@    <version>2.2</version> @b@</dependency>