Apache Camel FTP Download не удаляет удаленный файл

Прежде всего: я новичок в Apache Camel и в Stack Overflow!

Я создал маршрут, который фильтрует и загружает файлы с SFTP-сервера и удаляет их после обработки.

Моя проблема: на моем локальном компьютере маршрут работает отлично. Когда я развертываю этот маршрут (тот же .war) на производственном сервере, загрузка работает, но когда компонент FTP пытается удалить файл, я получаю исключение ниже. Машина для разработки и производства имеет одинаковую версию camel, tomcat и java. Единственное отличие - это ОС (Dev: Windows 7, Prod: Windows Server 2008 R2).

Любые идеи???

java.lang.IllegalArgumentException: Resolving language: header detected type conflict: Not a Language implementation. Found: org.apache.camel.language.header.HeaderLanguage
at org.apache.camel.impl.DefaultLanguageResolver.resolveLanguage(DefaultLanguageResolver.java:76)
at org.apache.camel.impl.DefaultCamelContext.resolveLanguage(DefaultCamelContext.java:1135)
at org.apache.camel.model.language.ExpressionDefinition.createExpression(ExpressionDefinition.java:177)
at org.apache.camel.model.language.ExpressionDefinition.evaluate(ExpressionDefinition.java:118)
at org.apache.camel.builder.BinaryPredicateSupport.matchesReturningFailureMessage(BinaryPredicateSupport.java:60)
at org.apache.camel.builder.BinaryPredicateSupport.matches(BinaryPredicateSupport.java:50)
at org.apache.camel.processor.ChoiceProcessor.process(ChoiceProcessor.java:90)
at org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:72)
at org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:398)
at org.apache.camel.processor.CamelInternalProcessor.process(CamelInternalProcessor.java:191)
at org.apache.camel.processor.Pipeline.process(Pipeline.java:118)
at org.apache.camel.processor.Pipeline.process(Pipeline.java:80)
at org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:105)
at org.apache.camel.processor.Pipeline.process(Pipeline.java:60)
at org.apache.camel.processor.CamelInternalProcessor.process(CamelInternalProcessor.java:166)
at org.apache.camel.component.file.GenericFileConsumer.processExchange(GenericFileConsumer.java:401)
at org.apache.camel.component.file.remote.RemoteFileConsumer.processExchange(RemoteFileConsumer.java:99)
at org.apache.camel.component.file.GenericFileConsumer.processBatch(GenericFileConsumer.java:201)
at org.apache.camel.component.file.GenericFileConsumer.poll(GenericFileConsumer.java:165)
at org.apache.camel.impl.ScheduledPollConsumer.doRun(ScheduledPollConsumer.java:187)
at org.apache.camel.impl.ScheduledPollConsumer.run(ScheduledPollConsumer.java:114)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:304)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:178)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:744)

Вот маршрут:

        String uri = "sftp://" + sftpUserId + "@" + sftpHost + "?" +
                "password=" + sftpPassword + "&" +
                "recursive=true" + "&" +                
                "filter=#fileFilter" + "&" +  
                "binary=true" + "&" +
                "delete=true";

person Helmut    schedule 08.08.2014    source источник


Ответы (2)


Это проблема другого рода. Вам нужно больше рассказать о производственной среде. Вы используете какой-то специальный сервер приложений для своего Camel-приложения или как вы его запускаете?

Эта ошибка указывает на проблему с загрузкой класса.

person Claus Ibsen    schedule 08.08.2014
comment
Привет, Клаус, спасибо за быстрый ответ. Мой прод. сервер - это обычный Tomcat 8.0.5. (то же, что и сервер разработки), работающий как служба с правами администратора. 3 других маршрута (каждый в своем собственном .war) уже работают на нем без каких-либо проблем. Эти другие маршруты не используют FTP. Каждый маршрут построен с помощью Maven. Поскольку мы только начали с Camel (что, на мой взгляд, очень круто), у нас довольно стандартная установка без каких-либо экзотических дополнений ... - person Helmut; 11.08.2014

Эта проблема до сих пор не решена. Запустив Tomcat на Windows Server (даже в качестве администратора), нам не удалось заставить этот маршрут работать. При развертывании маршрута в Tomcat в Ubuntu Linux он работал с самого начала без каких-либо модификаций !!!

person Helmut    schedule 13.11.2014