我有一个使用嵌入式 activeMQ 5.11 的应用程序。在应用程序启动时,它会在类路径位置创建 activemq-data\ProducerBroker\KahaDB 文件夹。我确实想更改位置,但 spring.xml 不占用位置。
给定的 Spring.xml,
<bean id="producerBroker" class="org.apache.activemq.broker.SslBrokerService">
<property name="brokerName" value="producerBroker" />
<property name="persistent" value="true" />
<property name="persistenceAdapter" ref="persistenceAdapter"/>
<property name="transportConnectors">
<list>
<bean class="org.apache.activemq.broker.TransportConnector">
<property name="name" value="xxx"></property>
<property name="uri" value="${transportConnectorURIs}"></property>
</bean>
</list>
</property>
<property name="jmsBridgeConnectors">
<list>
<bean class="org.apache.activemq.network.jms.JmsQueueConnector">
<property name="outboundQueueConnectionFactory">
<bean class="org.apache.activemq.ActiveMQSslConnectionFactory">
<property name="brokerURL" value="${brokerURL}" />
<property name="userName" value="${username}" />
<property name="password" value="${password}" />
<property name="trustStore" value="${trust.store.path}" />
<property name="trustStorePassword" value="${trust.store.password}" />
<!-- <property name="keyStore" value="${key.store.path}"/> -->
<!-- <property name="keyStorePassword" value="${key.store.password}"/> -->
</bean>
</property>
<property name="outboundQueueBridges">
<list>
<bean class="org.apache.activemq.network.jms.OutboundQueueBridge">
<constructor-arg value="${screenshotQueueName}" />
</bean>
<bean class="org.apache.activemq.network.jms.OutboundQueueBridge">
<constructor-arg value="${resultXmlQueueName}" />
</bean>
</list>
</property>
</bean>
</list>
</property>
</bean>
<bean id="persistenceAdapter" class="org.apache.activemq.store.kahadaptor.KahaPersistenceAdapter">
<property name="directory" value="E:\test"/>
当前的问题是它抛出一个错误,因为“异常是 org.springframework.beans.factory.CannotLoadBeanClassException:找不到类 [org.apache.activemq.store.kahadaptor.KahaPersistenceA” apter] 用于在类路径资源 [spring/resultupload/resultupload.xml] 中定义的名为“kahaPersistenceAdapter”的 bean;嵌套异常是java.la g.ClassNotFoundException:org.apache.activemq.store.kahadaptor.KahaPersistenceAdapter”
有人有java spring中activeMQ 5.11目录更改的经验吗?
最佳答案
持久性位置的目的地必须在代理级别定义。
kahaPersistenceAdapter (基于文件的)在 5.9 版本中被删除。您应该使用 kahaDB。
kahaDB - 使用 KahaDB 嵌入式轻量级非关系数据库
<broker brokerName="broker" persistent="true" useShutdownHook="false">
<transportConnectors>
<transportConnector uri="tcp://localhost:61616"/>
</transportConnectors>
<persistenceAdapter>
<kahaDB directory="e:/temp" ... />
</persistenceAdapter>
</broker>
所有有效属性:http://activemq.apache.org/schema/core/activemq-core-5.11.0-schema.html#kahaDB
关于java - Java Spring中的ActiveMQ数据持久化问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34916925/