原文:https://my.oschina.net/u/2284972/blog/662033
摘要: activemq jdbc 数据库持久化 异常 找不到驱动程序 Caused by: java.lang.ClassNotFoundException: org.apache.commons.dbcp.BasicDataSource
配置activemq 5.13.2 数据库持久化的时候,首先将mysql数据库驱动拷贝到activemq 的lib目录下,
然后配置activemq.xml 文件
增加两个配置点:
1,
<persistenceAdapter>
<jdbcPersistenceAdapter dataSource="#mysql" createTablesOnStartup="false"/>
</persistenceAdapter>
dataSource:引用的数据源
createTablesOnStartup: 表示启动的是自动创建三张表
2,
<!-- jdbc 数据库持久化 mysql配置 -->
<bean id="mysql" class="org.apache.commons.dbcp2.BasicDataSource" destroy-method="close">
<property name="driverClassName" value="com.mysql.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://localhost:3306/test_mq?relaxAutoCommit=true"/>
<property name="username" value="root"/>
<property name="password" value="root"/>
<property name="maxTotal" value="200"/>
<property name="poolPreparedStatements" value="true"/>
</bean>
这个地方连接池使用的是org.apache.commons.dbcp2.BasicDataSource的连接池 ,
因为activemq5.13.2 自身提供的是commons-dbcp2-2.1.1.jar 这个版本的jar包,
如果填写(使用)org.apache.commons.dbcp.BasicDataSource,就会提示找不到类,因为org.apache.commons.dbcp.BasicDataSource 在dbcp1.x中 不在dbcp2.x中。
由于commons-dbcp所用的连接池出现版本升级,因此commons-dbcp2中的数据库池连接配置也发生了变化
由于commons-dbcp升级到commons-dbcp2 数据库连接池的连接配置也发生了变化(属性名变了),
版本1.x中最大活动连接数属性名称为:maxActive
版本2.x中最大活动连接数属性名称为:maxTotal
配置完成后,你在重新启动数据库就会从新创建三张表。