我正在使用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"/>
答案 0 :(得分:0)
此问题的最常见原因是错误地加载应用程序上下文两次 - 一次在Web上下文(调度程序servlet)中,一次在web.xml中的根上下文(上下文加载程序侦听器)中。