基本的に、私は SOAP リクエストにすぐに応答しようとしていますが、さらに処理を開始することも考えています。私が見ているのは、ルートが終了するまで応答が送信されないことです。言い換えると:
from("cxf:bean:someEndpoint")
.to("seda:replySOAP")
.to("direct:ABCMessage");
from("seda:replySOAP")
.to("bean:soapReply?method=process").end();
from("direct:ABCMessage")
.process(new ConvertABCToNZFCY())
.to("bean:prelimNZFCYCall")
.end();
「direct:ABCMessage」が完了するまで応答を生成しません。seda は非同期処理を指定すると思います。別の Camel コンテキストを指す「vm:replySOAP」も試しましたが、これは役に立ちませんでした。
マルチキャストも試しましたが、役に立ちませんでした:
from("cxf:bean:someEndpoint")
.multicast().parallelProcessing()
.to("seda:replySOAP")
.to("direct:ABCMessage");
私にとってうまくいくのはwireTapですが、エレガントではないようです:
from("cxf:bean:someEndpoint")
.wireTap("direct:ABCMessage")
.to("direct:replySOAP");
JMS を使用する必要がありますか?
ありがとう!