1

基本的に、私は 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 を使用する必要がありますか?

ありがとう!

4

1 に答える 1

0

表示される動作は、

.to("direct:ABCMessage");

ルートで。同期処理、つまりInOut交換パターンです。jms を使用することもできますが、盗聴を避けるためだけに使用している場合はやり過ぎかもしれません。盗聴がエレガントに見えないのはなぜだと思いますか。

于 2013-04-22T21:14:26.120 に答える