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;
}
残念ながら、最初のメッセージで無期限にループします。考え?