天天看點

activemq 5.13.2 jdbc 資料庫持久化 異常 找不到驅動程式

原文: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

配置完成後,你在重新啟動資料庫就會從新建立三張表。