2017-03-08 1 views
0

Ich habe gerade einen Listener mit Spring @ JmsListener konfiguriert, aber wenn ich einen einzigen Methodenparameter verwende, erhalte ich nur eine Nachricht aus meiner Warteschlange.Spring's @JmsListener empfängt nur eine Nachricht aus der Solace-Warteschlange

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

Es verhält sich nicht wie ein herkömmlicher Hörer in diesem Fall - nur einer ist jemals erhalten messaged! Nicht ein Zustrom von einzelnen Nachrichten einzeln, wie ich es erwarten würde.

Allerdings, wenn ich die Methodendefinition ändern

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

ich sie alle als Liste empfangen zu werden. Dies ist zuvor noch nie geschehen, und die einzige Unbekannte in diesem Fall ist die Konfiguration der Solace-Warteschlange. Gibt es Stapeleinstellungen in der Warteschlange, die mir nicht bekannt sind?

+0

Sie bitte Ihre Spring-XML-Ressourcendatei und Code-Schnipsel teilen damit das reproduziert werden kann –

Antwort

0

Stellt sich heraus, dass die Nachrichten tatsächlich als Liste gesendet wurden!

Wie in:

jmsTemplate.convertAndSend(listOfMessages); 

Es Frühling scheint erlaubt nur die erste in dieser Liste zugegriffen werden, wenn Sie Ihre Zuhörer definieren als:

public void onMessage(Message message){} 
Verwandte Themen