При вводе верблюжьего файла один и тот же файл непрерывно читается даже при заданном noop = true

1

Компонент файла верблюда непрерывно читает один и тот же файл и не обнаруживает другие файлы.

У меня есть верблюжий маршрут,

<camelContext trace="false" xmlns="http://camel.apache.org/schema/spring">
    <route>
        <from uri="file:C:/Books/input_dir?noop=true"/>
        <dynamicRouter>
            <method ref="fileRouter" method="routeFiles"></method>
        </dynamicRouter>
    </route>
</camelContext>
<bean id="fileRouter" class="org.test.demo.DynamicRouter"/>

и Router as,

public class DynamicRouter {
    public String routeFiles(Exchange exchange){
        final String fileName = (String) exchange.getIn().getHeader(Exchange.FILE_NAME_ONLY);
        System.out.println("FILENAME: "+fileName);
        if(fileName.contains("survival")){
            return "file:C:/Books/output_dir";
        }else {
            return "file:C:/Books/target_dir";
        }
    }
} 

Всякий раз, когда файл говорит, что beahomelist упал в папку C: /Books/input_dir он считывает первый файл и никогда не останавливается, поскольку журнал ниже

FILENAME: beahomelist FILENAME: beahomelist FILENAME: beahomelist FILENAME: beahomelist FILENAME: beahomelist FILENAME: beahomelist FILENAME: beahomelist FILENAME: beahomelist....

и не обнаруживать никаких дальнейших файлов, помещенных в одну папку. Несмотря на то, что noop = true дается, так бывает. Просьба представить некоторые предложения по этому вопросу. Я использую версию верблюда: 2.13.0

  • 0
    Любое предложение по этому вопросу, пожалуйста?
Теги:
spring
routing
apache-camel
camel-ftp

1 ответ

1
Лучший ответ

Прочтите документацию о динамическом маршрутизаторе eip, см. Осторожно! в верхней части окна

Хотя похоже, что вместо динамического маршрутизатора вы должны использовать "dynamic to", см. Этот FAQ

Так что просто используйте

  <recipientList>
        <method ref="fileRouter" method="routeFiles"></method>
    </recipientList>
  • 0
    Спасибо, Клаус. Это помогло мне понять и решить проблему

Ещё вопросы

Сообщество Overcoder
Наверх
Меню