java - Java Spring中的ActiveMQ数据持久化问题

标签 java xml spring hibernate activemq

我有一个使用嵌入式 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/

相关文章:

java - 是否可以使用 XStream 将对象字段隐式添加到 XML 中?

php - Five9 的 API : How to pull reports using SOAP API and Basic Authentication

java - pretty-print XML 文件

java - 无法实例化接口(interface) org.springframework.context.ApplicationContextInitializer (Spring 5.2.3 + Spring Boot 2.2.3)

java - 以 Short 基元类型获取 Java 8 中两个日期之差(天数)的最简单方法

java - 属性函数扩展 sparql

PHP SimpleXML 缺少属性

java - 为什么使用@Transactional注解时数据没有保存?

java - 如何在 Spring/OpenJPA 1 中重新创建更新行锁定的选择

java - Jackson - 映射属性 为什么 Access.WRITE_ONLY 不起作用?