私は外部ソースからいくつかのファイルをダウンロードするプロセッサを作成します。ラクダの交換体はどのようにタイプされていますか?
私はそれを行うには、次のように:
CamelContext context = exchange.getContext();
ProducerTemplate template=context.createProducerTemplate();
Object answer=null;
try {
answer=template.requestBodyAndHeaders(
uri,
"",
headers);
} catch (Exception e) {
....
} finally {
template.stop();
}
if (answer != null) {
/* Here I need to know, if it is a file, or an error-message */
}
問題があり、要求はエラー・メッセージ(String)をすることができ、またはストリーム(ファイルが発見された)です。
どうすれば確認できますか?
は、任意の助けてくれてありがとうUPDATE:ルートの
コードは簡単です:多分ちょうどチェック "のinstanceof"
from("http://domain.de/getDoc?Id=123")
to("file:docs")
例外が発生した場合のエラー状況を通知しないでください。 – Ralf
はい、例外をスローしたいと思います。しかし、それがエラーメッセージであるかどうかを知る必要があります。それがファイルの場合、私は例外をスローしたくありません。 – Burner
私が言ったことは、プロデューサテンプレートのターゲット側で例外をスローする必要があるということです。あなたが呼び出している場所。エラーメッセージを返す代わりに例外をスローします。次に、あなたの質問で引用したコード部分に 'if(answer.getException()!= null)'をチェックしてエラー処理を行います。 – Ralf