-1

例外処理機能を備えたキャメル ルートと、amq エンドポイント フォーム キャメル ルートからのメッセージを消費する defaultmessagelistener があります。

messageListener onMessage(Message message) で例外がスローされると、例外を処理するキャメルにルーティングされません

onException(Throwable.class)
            .process(customErrorHandler);

予想: messagelistener で例外をスローすると、ルートに戻って errorHandler を処理する 実際: 例外をキャッチする

@Override
public void onMessage(Message message) {
try {
//dosomething which throws an exception
    } catch (Exception e) {
        //send back to camel route how??????
onException(Throwable.class)
            .process(customErrorHandler);
    }
}

前もって感謝します

4

1 に答える 1

0

onMessage() メソッドで例外をキャッチしないでください...それを元に戻します。その onMessage が Camel ルートによって呼び出された場合、Camel ルートの onException() 句などにヒットするはずです。

于 2013-08-27T06:14:15.227 に答える