Spring 无法停止MQUE侦听器

Spring 无法停止MQUE侦听器,spring,message-queue,lifecycle,spring-jms,Spring,Message Queue,Lifecycle,Spring Jms,我的MQUE具有以下配置: <jms:listener-container container-type="default" connection-factory="cachedConnectionFactory" acknowledge="auto"> <jms:listener id="myListenerId" destination="myDestination" ref="myListener" method="onMessage" /> </jm

我的MQUE具有以下配置:

<jms:listener-container container-type="default" connection-factory="cachedConnectionFactory" acknowledge="auto">
    <jms:listener id="myListenerId" destination="myDestination" ref="myListener" method="onMessage" />
</jms:listener-container>
附言:

  • 当我
    stop()
    我的侦听器时,
    isRunning()
    返回False,但我仍然通过MQUE获取消息。。。会触发
    onMessage
  • jmsManagement
    是类
    生命周期的一个实例。即使我将其更改为
    DefaultMessageListenerContainer
    ,也是一样
  • 我在调用
    start()
    之前收到消息,即使
    autoStartup
    设置为false
  • jmsManagement.shutdown()未阻止侦听器被触发
有人知道如何停止这个MQ侦听器吗?
有什么我遗漏的吗?

我实际上必须将
autoStartup
设置为true

由于我无法使用
jms:listener容器
,因此我实例化了一个
DefaultMessageListenerContainer
bean,并将
autoStartup
属性设置为false

以下是对我有效的代码:

<bean class="org.springframework.jms.listener.DefaultMessageListenerContainer"  id="pitagorCPYListener">
    <property name="autoStartup" value="false" />
    <property name="connectionFactory" ref="cachedConnectionFactory" />
    <property name="destination" ref="defaultDestination" />
    <property name="messageListener" ref="listenerPitagorCPY" />
</bean>

 <bean id="defaultDestination" class="com.ibm.mq.jms.MQQueue">
    <constructor-arg value="#{mqConnectionFactory.destination}"/>
  </bean>


cachedConnectionFactory的缓存级别是多少?他一定是1@HassenBennour它实际上等于3
对不起,我指的是DefaultMessageListenerContainer.cacheLevel,请尝试调用DefaultMessageListenerContainer.shutdown()停止连接并关闭listeners@HassenBennourcacheLevel等于3<代码>jmsManagement.shutdown()未阻止侦听器被触发。。。我也找不到一个逻辑结论,我不明白你是怎么做的myProject.instance.getContext().getBean('myListenerId',DefaultMessageListenerContainer.class');毫无例外,因为myListenerId是一个侦听器
<bean class="org.springframework.jms.listener.DefaultMessageListenerContainer"  id="pitagorCPYListener">
    <property name="autoStartup" value="false" />
    <property name="connectionFactory" ref="cachedConnectionFactory" />
    <property name="destination" ref="defaultDestination" />
    <property name="messageListener" ref="listenerPitagorCPY" />
</bean>

 <bean id="defaultDestination" class="com.ibm.mq.jms.MQQueue">
    <constructor-arg value="#{mqConnectionFactory.destination}"/>
  </bean>