我正在使用http服務的合成請求消息。InOut交換模式有Out始終爲空
Order finalOrder = (Order) producerTemplate.requestBody("direct:processRequests", myOrder);
我打電話以上code.and路線我知道requestBody()方法使用的InOut pattern.But當我試圖檢查最終交換是否有出的消息是虛報。
@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}")
}
}
我能夠在In消息中獲得響應正文,而不是Out.I正在處理aggitor類中的交換。
@Override
public Exchange aggregate(Exchange oldExchange, Exchange newExchange) {
if (oldExchange == null) {
System.out.println("hasout "+newExchange.hasOut());
// remaining code
newExchange.hasOut()總是false.Message是在消息話題。可在傳播任一項解釋如何在傳播出的消息最終響應消息。 在此先感謝。
看到這個FAQ:http://camel.apache.org/using-getin-or-getout-methods-on-exchange.html –
感謝您的回覆。但我不明白如何使路線提到以上使用InOut模式。我想在Out消息中提供最終響應。 – sasidhar