http://localhost:8089/mock/success
でホストされているREST Webサービスからの応答を取得し、Camel
を使用して応答をファイルに書き込もうとしています。ここで私はsame-camelを使用してファイルにWebサービスの応答を書き込む方法は?
from("direct:start")
.to("http://localhost:8089/mock/success")
.to("file://D:/tmp/restoutput");
のためにJavaで書かれてきたルートは、ここで私はすべての例外を得ることはありませんが、何もファイルに追加されていない私は、このroute-
CamelContext ctx = new DefaultCamelContext();
RouteBuilder routebuilder = new RestToFileRoute();
System.out.println("invokeRestToFileRoute() started.");
try {
ctx.addRoutes(routebuilder);
ctx.start();
Thread.sleep(1000);
ctx.stop();
} catch (Exception e) {
e.printStackTrace();
}
を呼び出しています方法ですです。私はCamelにとってかなり新しいので、問題を推測することはできません。誰もこれで私を助けることができますか?
提案に基づいてタイマーを使用すると、ファイルへの書き込み中にNULLポインタ例外が発生します。ここに変更されたコードがあります。
from("timer://simpleTimer?repeatCount=1")
.to("http://localhost:8089/mock/success")
.process(exchange -> {System.out.println("Message: " + exchange.getOut().getBody(String.class));}) // Output: "Message: null"
.to("file://D:/tmp/restoutput");
@clausと同様に、あなたのルートはどのように引き起こされると思われますか?ダイレクトスタートはメモリ内のキューに過ぎません。何かを置く必要があります。簡単にするために、ファイルをピックアップし、ルートで破棄して続行するだけです。または、タイマーを使用します。 –
@SoucianceEqdamRashti:私はタイマーを使用できません。 'direct:start'に関しては、私はドキュメントを誤解しました。 – Abhishek
最初の.to()の後ろにログステートメントを追加し、ファイルに書き込む前に本文とヘッダーに含まれる内容を確認してください。タイマーが機能しないということはどういう意味ですか?それは誘発されませんか? –