Apache Camel FTP下载不会删除远程文件

Apache Camel FTP下载不会删除远程文件,ftp,apache-camel,camel-ftp,Ftp,Apache Camel,Camel Ftp,首先:我对ApacheCamel和堆栈溢出非常陌生 我创建了一个路由,可以从SFTP服务器过滤和下载文件,并在处理后删除这些文件 我的问题是:在我的本地计算机上,这条路线运行得很好。当我在生产服务器上部署此路由(相同的.war)时,下载工作正常,但当FTP组件尝试删除文件时,我得到以下异常。开发和生产机器具有相同的camel、tomcat和java版本。唯一的区别是操作系统(Dev:windows7,Prod:windowsserver2008r2) 有什么想法吗 java.lang.Illeg

首先:我对ApacheCamel和堆栈溢出非常陌生

我创建了一个路由,可以从SFTP服务器过滤和下载文件,并在处理后删除这些文件

我的问题是:在我的本地计算机上,这条路线运行得很好。当我在生产服务器上部署此路由(相同的.war)时,下载工作正常,但当FTP组件尝试删除文件时,我得到以下异常。开发和生产机器具有相同的camel、tomcat和java版本。唯一的区别是操作系统(Dev:windows7,Prod:windowsserver2008r2)

有什么想法吗

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";

这是另一种问题。您需要更多地了解生产环境。您是否为骆驼应用程序使用了一些特殊的应用程序服务器,或者如何运行它


该错误表明存在某种类型的类加载问题。

此问题仍未解决。在Windows服务器的Tomcat中运行(甚至作为管理员),我们无法使此路由正常工作。在Ubuntu Linux的Tomcat中部署路由,它从一开始就工作正常,没有任何修改

嗨,克劳斯,谢谢你的快速回答。我的产品服务器是一个普通的Tomcat 8.0.5。(与开发服务器相同)作为具有管理员权限的服务运行。3条其他路线(每条路线都在自己的.war中)已经在上面运行,没有任何问题。其他路由没有使用FTP。每条路线都是用Maven建造的。由于我们刚刚开始使用Camel(在我看来这很酷),我们有一个非常标准的设置,没有任何外来的附加功能。。。