Spring集成JMS适配器与Jboss中的Topic连接

时间:2015-10-13 10:50:33

标签: spring-integration

我正在使用Spring Integration JMS 4.1,在JBoss中配置了Topic,然后在Spring集成中配置如下,并发消费者和最大并发消费者等于1.但是在运行应用程序之后,jboss显示为连接消费者是2.因为这个,应用程序两次获得相同的消息。我尝试了所有的可能性,我做不到。请帮我。我只需要与Topic建立一个消费者连接,或者只需要接收一次消息。

 <bean id="connectionFactory"  class="org.springframework.jms.connection.CachingConnectionFactory">
 <property name="targetConnectionFactory" ref="myTargetConnectionFactory">
    </property>
    <property name="sessionCacheSize" value="10" />
    <property name="cacheProducers" value="false" />
<property name="cacheConsumers" value="false"/>
</bean>



  <bean id="myTargetConnectionFactory" class="org.springframework.jndi.JndiObjectFactoryBean">
    <property name="jndiName" value="ConnectionFactory"/>
                <property name="jndiEnvironment">
                    <props>
                       <prop key="java.naming.factory.initial">org.jnp.interfaces.NamingContextFactory</prop>
                       <prop key="java.naming.factory.url.pkgs">org.jboss.naming:org.jnp.interfaces</prop>
                       <prop key="java.naming.provider.url">localhost:1199</prop>
                    </props>
              </property>
</bean>

<jms:message-driven-channel-adapter  pub-sub-domain="true" connection-factory="connectionFactory" channel="incomeChannel" destination-name="SampleSub"concurrent-consumers="1" max-concurrent-consumers="1"/>

1 个答案:

答案 0 :(得分:0)

此问题的最常见原因是错误地加载应用程序上下文两次 - 一次在Web上下文(调度程序servlet)中,一次在web.xml中的根上下文(上下文加载程序侦听器)中。