Spring的@JmsListener只接收来自Solace队列的一条消息

时间:2017-03-08 18:39:39

标签: java spring queue listener solace

我刚刚使用Spring的@JmsListener配置了一个监听器,但是当我使用单个方法参数时,我只从队列中收到一条消息。

@JmsListener(...)
public void onMessage(Message message)

在这种情况下它不像传统的监听器 - 只收到一条消息!不像我期望的那样,不是一次一个地传入单个消息。

但是,如果我将方法定义更改为

@JmsListener(...)
public void onMessage(List<Message> messages)

我收到所有这些作为列表。这种情况从未发生过,本例中唯一未知的是Solace队列的配置方式。我可能不知道队列中是否有批处理设置?

1 个答案:

答案 0 :(得分:0)

原来这些消息实际上是作为列表发送的!

如:

jmsTemplate.convertAndSend(listOfMessages);

如果您将侦听器定义为:

,则Spring似乎只允许访问此列表中的第一个
public void onMessage(Message message){}