DefaultMessageListenerContainer not receiving messages

青春壹個敷衍的年華 提交于 2019-12-10 15:09:59

问题


I have a DefaultMessageListenerContainer configured as follows:

DefaultMessageListenerContainer container = new DefaultMessageListenerContainer();
container.setConcurrentConsumers(4);
container.setConnectionFactory(connectionFactory);
container.setDestinationName(String.format("Consumer.%s.VirtualTopic.%s", group, topic));
container.setSessionAcknowledgeMode(Session.CLIENT_ACKNOWLEDGE);
container.setSessionTransacted(true);
container.setMessageListener(new DelegatingMessageListener(listener, messageMapper, event));

container.start();

The message container never receives messages, and my message listener is never invoked. Leaving all else the same, if I just switch DefaultMessageListenerContainer to SimpleMessageListenerContainer, it works - but SimpleMessageListenerContainer doesn't recover after a connection loss

There are no errors in the logs, and hardly any relevant messages. Does anyone have any reasons for why this may be happening?


回答1:


When constructing the container in Java (outside a Spring application context), you need to invoke afterPropertiesSet() before start().

The context does that automatically for Spring beans.



来源:https://stackoverflow.com/questions/21360550/defaultmessagelistenercontainer-not-receiving-messages

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!