其他分享
首页 > 其他分享> > spring – DefaultMessageListenerContainer不接收消息

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,jms,activemq,spring-jms
来源: https://codeday.me/bug/20190714/1459855.html