Верблюд + опрос Энрич из бобов - PullRequest
0 голосов
/ 11 февраля 2019

Как мне использовать pollEnrich с Bean в Apache Camel?

Я пытался использовать это, но получаю исключение «В этом случае вы не можете использовать из конечной точки bean», я вызываю rest api, но клиент предоставил jarфайл, поэтому мне нужно позвонить боб и получить дополнительную информацию.

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 голосов
/ 11 февраля 2019

Просто используйте enrich, который предназначен для использования на стороне производителя, например enrich(...).Вы можете использовать это, если вам нужно объединить данные вместе с помощью стратегии агрегирования.Однако, если вы просто хотите получить / вывести bean-компонент, используйте вместо него простой to, если метод bean-компонента - void.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...