豆类骆驼+ pollEnrich

时间:2019-02-11 10:41:34

标签: apache-camel

如何在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();

1 个答案:

答案 0 :(得分:2)

只需使用enrich即可使用生产者端,例如enrich(...)。如果需要通过聚合策略将数据合并在一起,则可以使用它。但是,如果只想结果/输出bean,则使用普通的to,而不是bean方法是void方法。