2016-04-22 37 views
0

當某個事件到來時,我停止我的rabbitmq listner使用container.stop();和必要的工作完成後,我重新啓動它與container.start(),但是,當一個新的事件到來時,我得到以下錯誤:SimpleMessageListenerContainer一樣回採後無法恢復

Exception in thread "SimpleAsyncTaskExecutor-1" 2016-04-22T16:20:53.646 WARN 15336 --- [cTaskExecutor-1] o.s.a.r.l.SimpleMessageListenerContainer : Consumer raised exception, processing can restart if the connection factory supports it 
java.lang.NullPointerException: null 
    at org.springframework.amqp.rabbit.listener.SimpleMessageListenerContainer.isActive(SimpleMessageListenerContainer.java:756) ~[spring-rabbit-1.4.3.RELEASE.jar:na] 
    at org.springframework.amqp.rabbit.listener.SimpleMessageListenerContainer.access$600(SimpleMessageListenerContainer.java:82) ~[spring-rabbit-1.4.3.RELEASE.jar:na] 
    at org.springframework.amqp.rabbit.listener.SimpleMessageListenerContainer$AsyncMessageProcessingConsumer.run(SimpleMessageListenerContainer.java:1100) ~[spring-rabbit-1.4.3.RELEASE.jar:na] 
    at java.lang.Thread.run(Thread.java:745) [na:1.8.0_77] 

回答

1

它實際上是一種無害(但可怕)的日誌消息,但它是fixed in 1.5.3

this answer提到:

It's generally better to stop the container on a separate thread.

因爲容器不能完全停止,直到聽衆退出。

+0

請參閱編輯我的回答(我不確定是否通知您我的編輯)。 –

+0

我看到錯誤是無害的,因爲一切正常。 – Paul