【问题标题】:Apache Camel FTP Download does not delete remote fileApache Camel FTP 下载不删除远程文件
【发布时间】:2014-10-01 16:21:16
【问题描述】:

首先:我对 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";

【问题讨论】:

    标签: ftp apache-camel camel-ftp


    【解决方案1】:

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

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

    【讨论】:

    • 您好克劳斯,感谢您的快速回答。我的产品。服务器是一个普通的 Tomcat 8.0.5。 (与开发服务器相同)作为具有管理员权限的服务运行。其他 3 条路线(它自己的 .war 中的每条路线)已经在上面运行,没有任何问题。那些其他路由没有使用 FTP。每条路线都是用 Maven 构建的。由于我们刚刚开始使用 Camel(我认为这很酷),我们有一个非常标准的设置,没有任何异国情调的附加功能......
    【解决方案2】:

    这个问题还没有解决。在 Windows Server 中的 Tomcat 中运行(即使以管理员身份),我们也没有设法使这条路线工作。在 Ubuntu Linux 中的 Tomcat 中部署路由,它从一开始就可以正常工作,无需任何修改!!!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多