带弹簧的JMS队列

时间:2012-11-15 12:06:27

标签: spring jms

我的springcontext-notification XML:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:jee="http://www.springframework.org/schema/jee"
    xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
    http://www.springframework.org/schema/jee http://www.springframework.org/schema/jee/spring-jee-2.5.xsd">
    <bean
        class="org.springframework.jms.listener.DefaultMessageListenerContainer">
        <property name="connectionFactory" ref="notificationJmsConnectionFactory" />
        <property name="destinationName" value="${bpm.task.queue}" />
        <property name="messageListener" ref="taskMessageReceiver" />
        <property name="sessionTransacted" value="true" />
        <property name="clientId" value="BPMTaskMessageLisetners" />
        <property name="transactionManager" ref="transactionManager" />
        <property name="maxConcurrentConsumers" value="${bpm.task.queue.listener.concurrency}" />
    </bean>
    <bean id="taskMessageReceiver"
        class="com.sterling.ag.jms.impl.TaskMessageListenerImpl">
    </bean>
    <bean id="notificationJmsTemplate" class="org.springframework.jms.core.JmsTemplate">
        <property name="connectionFactory" ref="notificationJmsConnectionFactory" />
        <property name="sessionTransacted" value="true" />
    </bean>
    <jee:jndi-lookup id="notificationJmsConnectionFactory"
        jndi-name="java:/JmsXA">
        <!--
            <jee:environment>java.naming.factory.initial=org.apache.activemq.jndi.ActiveMQInitialContextFactory</jee:environment>
        -->
    </jee:jndi-lookup>
    <alias name="notificationJmsTemplate" alias="auditJmsTemplate" />
    <alias name="notificationJmsTemplate" alias="historyExchangeJmsTemplate" />
</beans>

我添加了另一个队列。我应该如何在上面的XML中配置它?

1 个答案:

答案 0 :(得分:1)

您需要创建一个单独的容器和侦听器

<bean
    class="org.springframework.jms.listener.DefaultMessageListenerContainer">
    <property name="connectionFactory" ref="notificationJmsConnectionFactory" />
    <property name="destinationName" value="${bpm.task.queue2}" />
    <property name="messageListener" ref="taskMessageReceiver2" />
    <property name="sessionTransacted" value="true" />
    <property name="clientId" value="BPMTaskMessageLisetners" />
    <property name="transactionManager" ref="transactionManager" />
    <property name="maxConcurrentConsumers" value="${bpm.task.queue.listener.concurrency2}" />
</bean>
<bean id="taskMessageReceiver2"
    class="com.sterling.ag.jms.impl.TaskMessageListenerImpl2">
</bean>