我有一个有主题和队列的 HornetQ 服务器。我不知道另一边的配置,但我连接到队列的方式是:
<bean id="connectionFactory" class="org.springframework.jndi.JndiObjectFactoryBean">
<property name="jndiTemplate" ref ="jndiTemplate"/>
<property name="jndiName" value="ConnectionFactory"/>
</bean>
<bean id="jmsTemplate" class="org.springframework.jms.core.JmsTemplate">
<property name="connectionFactory" ref="connectionFactory"/>
<property name="defaultDestination" ref="destination"/>
<property name="pubSubDomain" value="false"/>
<property name="deliveryPersistent" value="true"/>
<property name="deliveryMode" value="2"/>
</bean>
<bean id="destination" class="org.springframework.jndi.JndiObjectFactoryBean">
<property name="jndiTemplate" ref="jndiTemplate"/>
<property name="jndiName" value="QUEUE_NAME"/>
</bean>
<!-- Listener Asynchronous -->
<bean id="queueListener" class="com.my.queueListener"/>
<jms:listener-container concurrency="5-10">
<jms:listener destination="QUEUE_NAME" ref="queueListener"/>
</jms:listener-container>
我已经设置了pubSubDomain
它true
并且它工作(奇怪但真实)。无论如何,现在我想连接到一个主题。我设置pubSubDomain
为true
,但它仍然给我一个错误说
警告:目标“Activate_NTD”的 JMS 消息侦听器调用程序设置失败 - 尝试恢复。原因:没有名称为 TOPIC_NAME 的队列
我知道 HornetQ 的行为与此处指定的有所不同:
但我无法弄清楚该做什么以及如何让它发挥作用。