spring – DefaultMessageListenerContainer不接收消息

我有一个DefaultMessageListenerContainer配置如下:

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();

消息容器永远不会收到消息,我的消息监听器永远不会被调用.保持其他所有相同,如果我只是将DefaultMessageListenerContainer切换到SimpleMessageListenerContainer,它可以工作 – 但是连接丢失后SimpleMessageListenerContainer不会恢复

日志中没有错误,几乎没有任何相关消息.有没有人有理由说明为什么会这样?

最佳答案
在Java中构造容器(在Spring应用程序上下文之外)时,需要在start()之前调用afterPropertiesSet().

上下文自动为Spring bean执行此操作.

转载注明原文:spring – DefaultMessageListenerContainer不接收消息 - 代码日志