メッセージを処理するためにSpringのamqp MessageListener実装を使用しています。 Beanの定義と実際の例は次のとおりです。再試行のためにメッセージをキューに保持して正常に処理するまで
public class AutomationMessageListenerServiceImpl implements MessageListener {
public void onMessage(Message message) {
EntityMessage message= null;
try {
message= jsonDeserializer.covertPayload(message.getBody());
dispatchToHandler(message);
} catch (Exception e) {
e.printStackTrace();
}
}
}
<rabbit:listener-container connection-factory="rabbitConnectionFactory">
<rabbit:listener queue-names="${listen.queue}" ref="messageListener"/>
</rabbit:listener-container>
<bean id="messageListener" class="com.tcl.gvg.itsm.automation.core.messaging.AutomationMessageListenerServiceImpl"/>
ここでの問題は、キャッチブロックのすべてのエラーを処理しているため、キューはメッセージを正常に処理したと思っています。しかし、私は例外をスローすることはできません。なぜなら、親インタフェースが問題を引き起こすからです。
多くのコード変更を自分で行うことなくこれを行う方法はありますか?
私は不正な形式のJSONを送信する場合、管理者が行動を取るが、それはのonMessage()契約方式のdoesntを持っている上記のコード –