DefaultMessageListenerContainer未接收消息

时间:2014-01-26 06:38:35

标签: spring jms activemq spring-jms

我有一个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在连接丢失后无法恢复

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

1 个答案:

答案 0 :(得分:14)

在Java中构建容器(在Spring应用程序上下文之外)时,需要在afterPropertiesSet()之前调用start()

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