Camel、Spring、および ActiveMQ を使用して、要求と応答のパターンを実装しようとしています。私がする必要があるのは、CSV ファイルを 1 行ずつ読み取ることです。次に、すべての行について:
- CSV の行の値に基づいてリクエストを作成する
- リクエストをキューに送信する
- 他のコンポーネントは、メッセージを取得し、リクエストを処理して、応答を別のメッセージ キューに送信する必要があります (プロデューサーに認識されているため、プロデューサーは応答を取得できます)。
以下のコードが機能しました。ここで、プロセッサで応答を作成するとしましょう。
私の質問は次のとおりです。
- どうすれば返信を返すことができますか?
- 応答を消費するにはどうすればよいですか?
public class MyRouteBuilder extends RouteBuilder {
public static void main(String[] args) throws Exception {
new Main().run(args);
}
public void configure() {
from("file:/Users/aviad/ws/integ/src/data?fileName=lines.txt&noop=true&idempotent=true")
.split()
.tokenize("\\n")
.inOut("activemq:req");
from("activemq:req")
.process(new Processor() {
public void process(Exchange exchange) throws Exception {
System.out.println(exchange.getIn().getBody(String.class));
System.out.println("jmscorrelationid=" + exchange.getIn().getHeader("jmscorrelationid"));
System.out.println("jmsdestination=" + exchange.getIn().getHeader("jmsdestination"));
}
});
}
}