2016-04-22 6 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

Это на самом деле безобидный (но страшный) журнал messsage, но это fixed in 1.5.3.

Как уже упоминалось в this answer:

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

, поскольку контейнер не может полностью остановить до выходов слушателя.

+0

См. Изменение в моем ответе (я не уверен, что SO уведомляет вас о моих изменениях). –

+0

Я видел, что ошибка безвредна, потому что все работает нормально. – Paul