一、异常描述
通过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>