0

私はルートを持っています:

from("restlet://RestletBean/{id}?restletMethod=GET")
   .setHeader(Exchange.HTTP_METHOD, constant("GET"))
   .setHeader(Exchange.HTTP_URI, simple("http://x.y.z.com?id={header.id}"))
   .to("http://dummyHost")

適切な入力を与えていない場合 (idこの場合、toルートで URI パラメーターとして使用されています)。ルートtoはエラーページで応答します。これは起こっていません。代わりに、デッド レター チャネル エラー ハンドラを使用して処理した後でも、空白のページが表示されます。

from("restlet://RestletBean/{id}?restletMethod=GET").
    .setHeader(Exchange.HTTP_METHOD, constant("GET"))
    .setHeader(Exchange.HTTP_URI, simple("http://x.y.z.com?id={header.id}"))
    .to("http://dummyHost")
    .errorHandler("http://x.y.z.com?id={header.id}");
4

1 に答える 1

0

デッド レター チャネルは応答に影響しません。キャメルのドキュメントから:

デッド レター チャネルは、1 秒の遅延を使用して最大 6 回再配信されます。交換が失敗した場合は、ERROR レベルでログに記録されます。

ところで、エラー ハンドラでデッド レター チャネルを適切に定義していません。そのはず:

errorHandler(deadLetterChannel("..."))

throwExceptionOnFailureパラメータをに設定しようとしましたtrueか? キャメルのドキュメントから:

リモート サーバーからの応答が失敗した場合に HttpOperationFailedException のスローを無効にするオプション。これにより、HTTP ステータス コードに関係なく、すべての応答を取得できます。

于 2014-05-13T19:48:07.270 に答える