Java Spring 中的 ActiveMQ 数据持久性问题
ActiveMQ Data persistent Issue in Java Spring
我有一个使用嵌入式 activeMQ 5.11 的应用程序。在应用程序开始时,它会在 class 路径位置创建 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:找不到 class [org.apache.activemq.store.kahadaptor.KahaPersistenceA
apter] for bean with name 'kahaPersistenceAdapter' defined in class path resource [spring/resultupload/resultupload.xml];嵌套异常是 java.la
g.ClassNotFoundException: org.apache.activemq.store.kahadaptor.KahaPersistenceA更新
谁有在javaspring中activeMQ 5.11目录变化的经验?
必须在代理级别定义持久性位置的目标。
kahaPersistenceAdapter(基于文件)在 5.9 版本中被删除。你应该使用kahaDB。
kahaDB - 使用 KahaDB 嵌入式轻量级 non-relational 数据库
<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
我有一个使用嵌入式 activeMQ 5.11 的应用程序。在应用程序开始时,它会在 class 路径位置创建 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:找不到 class [org.apache.activemq.store.kahadaptor.KahaPersistenceA apter] for bean with name 'kahaPersistenceAdapter' defined in class path resource [spring/resultupload/resultupload.xml];嵌套异常是 java.la g.ClassNotFoundException: org.apache.activemq.store.kahadaptor.KahaPersistenceA更新
谁有在javaspring中activeMQ 5.11目录变化的经验?
必须在代理级别定义持久性位置的目标。
kahaPersistenceAdapter(基于文件)在 5.9 版本中被删除。你应该使用kahaDB。
kahaDB - 使用 KahaDB 嵌入式轻量级 non-relational 数据库
<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