這兩天開始接觸學習activeMQ,基礎的學習那些我就不論述了,網上也很多資料,我現在是把自己學習中遇到的問題記錄下來,我學習到持久化相關的問題。我學習的是mysql數據庫,其他數據庫配置網上也方法就上網搜了一下方法,基本的是配置activemq.xml。
配置如下:
<persistenceAdapter>
<kahaDB directory="${activemq.data}/kahadb"/>
</persistenceAdapter>
把這個改成
<persistenceAdapter>
<jdbcPersistenceAdapter dataDirectory="${activemq.data}" dataSource="#derby-ds"/>
</persistenceAdapter>
然後在配置文件中的broker節點外增加:
<bean id="derby-ds" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
<property name="driverClassName" value="com.mysql.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://localhost:3306/activemq?relaxAutoCommit=true"/>
<property name="username" value="root"/>
<property name="password" value="root"/>
<property name="maxActive" value="200"/>
<property name="poolPreparedStatements" value="true"/>
</bean>
activemq 是你的數據庫名字,要在數據庫添加。這個配置也可以在conf/activemq-jdbc.xml下找到複製過去。
在把mysql-connector-java-commercial-5.1.25-bin.jar放入lib文件中
然後啓動activemq.bat文件。我的是64位的,就啓動64位文件夾裏面的activemq.bat。
<strong><span style="color:#ff0000;">啓動之後一閃就關了,報錯了。數據庫也沒有生成表。報錯截圖如下:</span></strong>
<strong><span style="color:#ff0000;">
</span></strong>
信息大概是這樣的
at org.apache.activemq.util.IOExceptionSupport.create(IOExceptionSupport
.java:27)
at org.apache.activemq.broker.BrokerFactory.createBrokerFactoryHandler(B
rokerFactory.java:43)
at org.apache.activemq.broker.BrokerFactory.createBroker(BrokerFactory.j
ava:70)
at org.apache.activemq.broker.BrokerFactory.createBroker(BrokerFactory.j
ava:54)
at org.apache.activemq.console.command.StartCommand.startBroker(StartCom
mand.java:115)
at org.apache.activemq.console.command.StartCommand.runTask(StartCommand
.java:74)
... 10 more
Caused by: java.lang.NoClassDefFoundError: org/springframework/core/io/FileSyste
mResource
我就找原因,找了好多;也看了下配置;也沒有錯;後面看到了報spring相關的錯誤。想是不是缺少了spring相關的包。
然後就把spring相關的包放入lib文件夾裏面。在重新啓動;ok!!好了可以了。
至此持久化的第一步完成了;看看數據庫也生成了三張表了。!!
所以在持久化的時候大家也還是看看不要忘記加入了spring的包。因爲網上的方法大都是隻是說了配置文件跟加入mysql鏈接相關的包。apache-activemq-5.8.0文件也自帶了spring的包;但是就是不行;要把它放入lib文件夾裏面才行。
順帶說一下我下載的是apache-activemq-5.8.0的版本。
這個是剛剛學習的遇到的一個問題,如有表述不當的大家指正咯!