基本上,我希望立即响应 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 会指定异步处理。我也试过“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 吗?
谢谢!