如何在Apache Camel中将pollEnrich与Bean一起使用?
在这种情况下,我尝试使用此方法,但得到了兴奋,“您不能从bean端点消费”,我正在调用rest api,但是客户端提供了jar文件,因此我需要调用bean并获取其他信息。
from("quartz2://tsTimer?cron=" + cron + "&trigger.timeZone=" + timezone)
.bean(tradingService)
.process(new Processor() {
@Override
public void process(Exchange exchange) throws Exception {
exchange.setProperty("fileName","input-" + dateFormat.format(new Date()) + ".xml");
}
})
.pollEnrich("bean:tradingService", new AggregationStrategy() {
@Override
public Exchange aggregate(Exchange oldExchange, Exchange newExchange) {
System.out.println("oldExchange : " + oldExchange +" newExchange : " + newExchange);
return null;
}
})
.marshal().jacksonxml(true)
.wireTap("file:" + auditDir + "/?fileName=${header.fileName}")
//split or merge
.to("xslt:trans.xslt")
.to(outQueue)
.to("log:org.ts.tradingservice.camel?level=INFO&showBody=true")
.end();
答案 0 :(得分:2)
只需使用enrich
即可使用生产者端,例如enrich(...)
。如果需要通过聚合策略将数据合并在一起,则可以使用它。但是,如果只想结果/输出bean,则使用普通的to
,而不是bean方法是void
方法。