前言
引入 jedis 2.9使用的是commons-pool2.jar
使用的dbcp内部使用的是commons-pool.jar
加载tomcat的时候报错。通过dependency:tree -Dverbose分析依赖发现的。
解决办法
- 升级dbcp为dbcp2
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-dbcp2</artifactId>
<version>2.1.1</version>
</dependency>
同时因为jedis也依赖一个commons-pool2这里把它干掉,统一用dbcp依赖的
<!-- jedis客户端 -->
<dependency>
<groupId>redis.clients</groupId>
<artifactId>jedis</artifactId>
<version>2.9.0</version>
<exclusions>
<exclusion>
<artifactId>commons-pool2</artifactId>
<groupId>org.apache.commons</groupId>
</exclusion>
</exclusions>
</dependency>
其他
- 还需要注意的是,在spring的配置中要改变dataSource为dbcp2
- 否则启动时又会报错
Caused by: java.lang.ClassNotFoundException: org.apache.commons.dbcp.BasicDataSource
- 并且没有了maxActive这个属性(ps)
<bean id="dataSource" class="org.apache.commons.dbcp2.BasicDataSource"
<property name="driverClassName" value="${jdbc.driver}" />
<property name="url" value="${jdbc.url}" />
<property name="username" value="${jdbc.username}" />
<property name="password" value="${jdbc.password}" />
<property name="maxIdle" value="5" />