当前位置: 首页 > 工具软件 > Commons Pool > 使用案例 >

解决commons-pool包冲突

蒋星雨
2023-12-01

问题说明:在工程中引入了jedis包后同时带入了commons-pool2的包,结果在调用某个业务时报出如下错误:

java.lang.NoClassDefFoundError: org/apache/commons/pool/KeyedPoolableObjectFactory
    at java.lang.Class.getDeclaredMethods0(Native Method)
    at java.lang.Class.privateGetDeclaredMethods(Class.java:2688)
    at java.lang.Class.getDeclaredMethods(Class.java:1962)
    at org.springframework.util.ReflectionUtils.getDeclaredMethods(ReflectionUtils.java:570)
    at org.springframework.util.ReflectionUtils.doWithMethods(ReflectionUtils.java:489)
    at org.springframework.util.ReflectionUtils.doWithMethods(ReflectionUtils.java:473)
    at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.determineCandidateConstructors(AutowiredAnnotationBeanPostProcessor.java:241)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.determineConstructorsFromBeanPostProcessors(AbstractAutowireCapableBeanFactory.java:1059)
    at 
....
查看mvn dependency:tree后,发现有两个版本的pool包:

[INFO] |  |  +- mysql:mysql-connector-java:jar:5.1.10:compile
[INFO] |  |  +- <span style="color:#cc6600;">commons-pool:commons-pool:jar:1.6:compile</span>
[INFO] \- redis.clients:jedis:jar:2.7.2:compile
[INFO]    \-<span style="color:#cc6600;"> org.apache.commons:commons-pool2:jar:2.3:compile</span>

查询文档后发现这两个包本就是不兼容的,所以不能随意升级,

单独引入1.6版本,问题解决。

 类似资料: