2015-10-13 87 views
0

我正在使用Spring Integration JMS 4.1,在JBoss中配置Topic,然后在Spring集成中配置如下,并发消费者和最大并发消费者等于1.但是在运行应用程序之后, jboss显示连接的消费者是2.因此,应用程序在两次获取相同的消息。我尝试了所有的可能性,我无法做到。请帮帮我。我只需要与主题建立一个消费者连接,或者只需要接收一次消息。Spring集成JMS适配器连接Jboss中的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"/> 

回答

0

这个问题的最常见的原因是为了避免错误两次加载应用程序上下文 - 一旦在web上下文(调度的servlet),一次在在web.xml根上下文(上下文加载侦听)。

+0

谢谢,我需要检查。在那种情况下,我们如何避免这种情况? –

+0

确保配置不包含(或导入)在两个地方。 –

相关问题