httpサービス用の合成要求メッセージを使用しています。InOut交換パターンが常にnullになっています
Order finalOrder = (Order) producerTemplate.requestBody("direct:processRequests", myOrder);
私は私が最終的に交換が、それは偽与えているメッセージを持っているかどうかを確認しようとしていたときにrequestBody()メソッドはInOutのpattern.Butを使用しています知っている上記code.andでルートを呼び出しています。
@Override
public void configure() throws Exception {
/*onException(Exception.class)
.handled(true);*/
from("direct:processRequests")
.split(body().method("getItems"), new GroupedBodyAggregationStrategy())
.parallelProcessing()
.to("direct:processRequest")
.end()
.end();
from("direct:processRequest")
.choice()
.when(body().method("getHttpDetails").method("getCallType").isEqualTo("POST"))
.setHeader(Exchange.HTTP_METHOD, body().method("getHttpDetails").method("getCallType"))
.setProperty("sendTo",body().method("getEndPointUri"))
.setBody(body().method("getPayload"))
.toD("${exchangeProperty.sendTo}")
}
}
私はOutの代わりにInメッセージで応答本文を取得できました。私はaggreatorクラスの交換を処理しています。
@Override
public Exchange aggregate(Exchange oldExchange, Exchange newExchange) {
if (oldExchange == null) {
System.out.println("hasout "+newExchange.hasOut());
// remaining code
newExchange.hasOut()は常にfalse.Messageは、いずれかがアウトメッセージに最終応答メッセージを伝播する方法について説明しMesssage .Canでで伝播しているです。 ありがとうございます。
このFAQを参照してください:http://camel.apache.org/using-getin-or-getout-methods-on-exchange.html –
応答してくれてありがとうございます。しかし、私はそれをどのようにルートを作成するInOutパターンを使用します。私は最終メッセージをOutメッセージで利用できるようにしたい。 – sasidhar