Тайм-аут Apache Camel версии 3.4 не работает должным образом

Я использую эту версию Spring Boot Apache Camel

    <dependency>
        <groupId>org.apache.camel.springboot</groupId>
        <artifactId>camel-spring-boot-starter</artifactId>
        <version>3.4.0</version>
    </dependency>

Очень простой сценарий, я пытаюсь скопировать файлы из одной папки в другую. В идеальном случае (без тайм-аута) маршрут должен бесконечно ждать, пока файл не попадет в исходную папку. Как только файл появится, он должен выбрать его и снова зацикливаться и ждать следующего. Он работает с Camel2.2, но не с последним.

Код:

    from("timer:theTimer?period=10s")
            .log("Timer Invoked . . . ")
            .pollEnrich("file:data/input?delete=true&readLock=none")
            .log("BODY = [ ${body} ] " )
            .to("file:data/output");

Любые предложения экспертов Camel?

В результате у меня было 2 файла во входном каталоге.

Вывод с camel2.2:

INFO 9248 --- [imer://theTimer] route1     : Timer Invoked . . . 
INFO 9248 --- [imer://theTimer] route1     : BODY = [ FIle1 content ] 
INFO 9248 --- [imer://theTimer] route1     : Timer Invoked . . . 
INFO 9248 --- [imer://theTimer] route1     : BODY = [ File2 content ] 
INFO 9248 --- [imer://theTimer] route1     : Timer Invoked . . . 
<<Now it waiting for file and not doing anything>> ALL GOOD

Вывод с camel3.4springboot: [ОШИБКА ОДИН РАЗ, вход DIR IS EMPTY]

INFO 13864 --- [imer://theTimer] route1    : Timer Invoked . . . 
INFO 13864 --- [imer://theTimer] route1    : BODY = [ FIle1 content ] 
INFO 13864 --- [imer://theTimer] route1    : Timer Invoked . . . 
INFO 13864 --- [imer://theTimer] route1    : BODY = [ File2 content ] 
INFO 13864 --- [imer://theTimer] route1    : Timer Invoked . . . 
INFO 13864 --- [imer://theTimer] route1    : BODY = [  ] 
2020-07-20 14:23:33.293 ERROR 13864 --- [imer://theTimer] o.a.c.p.e.DefaultErrorHandler            : Failed delivery for (MessageId: ID-OUDQ5TZO1R-1595235193339-0-3 on ExchangeId: ID-OUDQ5TZO1R-1595235193339-0-3). Exhausted after delivery attempt: 1 caught: org.apache.camel.component.file.GenericFileOperationFailedException: Cannot write null body to file: data\output\ID-OUDQ5TZO1R-1595235193339-0-3

1 ответ

Попробуйте установить для параметра allowNullBody значение true на конечной точке.

Другие вопросы по тегам