原文: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
配置完成後,你在重新啟動資料庫就會從新建立三張表。