我試圖用駱駝的充實與EIP定製AggregationStrategy即駱駝豐富和AggregationStrategy
from("direct:xyz")
.setHeader("...","")
.enrich("http://localhost:myservice", new AggregationStrategy() {
public Exchange aggregate(Exchange oldExchange, Exchange newExchange) {
.....
}
});
輸出從HTTP端點返回XML響應。我希望能夠編組並將其設置爲newExchange
的正文。
目前我通過注入JaxbDataFormat
到AggregationStrategy
和調用解組方法這樣做..即
public Exchange aggregate(Exchange oldExchange, Exchange newExchange) {
AnotherObj obj = dataFormat.unmarshall(newExchange,
newExchange.getIn().getBody(InputStream.class));
Parentobj test = oldExchange.getIn().getBody(ParentObj.class)
test.setobj(obj)
oldExchange.getIn().setBody(test);
return oldExchange;
}
有沒有什麼更好的方法來做到這一點?
我的要求是不要失去交易所的內容。 即如果調用豐富之前的'oldExchange'在Body中具有對象「A」,則在調用HTTP端點後返回一個OutputStream。 然後後續步驟應該有對象「C」(從輸出流獲得對象「A」和非編組對象'B'),現在所有這些只能在「AggregationStrategy」中完成。爲'newExchange'指定'dataformat',如果它的確可以直接從'newExchange'取出Object「C」 –
你應該澄清一下,在你原來的文章中聲明爲:「HTTP輸出端點返回XML響應。我希望能夠這樣做,並將其設置爲新交易所的主體。「讓人相信不然。 –