Я использую Mule 3.3.1пользовательских компонент для чтения сообщений из очереди
Я пытаюсь написать компонент, который считывает все имеющиеся сообщения из очереди, которые я намереваюсь быть опрошены с помощью планировщика Quartz.
Вот мой код.
@Override
public Object onCall(MuleEventContext muleEventContext) throws Exception {
MuleMessage[] messages = null;
MuleMessage result = muleEventContext.getMessage();
do {
if (result == null) {
break;
}
if (result instanceof MuleMessageCollection) {
MuleMessageCollection resultsCollection = (MuleMessageCollection) result;
System.out.println("Number of messages: " + resultsCollection.size());
messages = resultsCollection.getMessagesAsArray();
} else {
messages = new MuleMessage[1];
messages[0] = result;
}
result = muleEventContext.getMessage();
} while (result !=null);
return messages;
}
К сожалению, на первом сообщении он бесконечно петляет. Мысли?
Вы не где результат настройки как null, так что он продолжает цикл –
@Learner Извините. Мое требование - перебирать все сообщения в очереди. Любая идея, как я могу это достичь? – Jeet
Пожалуйста, добавьте конфигурацию, в которой этот компонент вызывается, и входящую очередь. – user1760178