当前位置: 首页 > 知识库问答 >
问题:

失败时骆驼移动文件

韩豪
2023-03-14
onException( Exception.class )
     .to( "file://error_directory" )
.end()

from( "file://input" )
.choice()
    .when( {filename matches *.gz} )
        {unzip Gzip contents}
        .to( "file://output" )
    .when( ) ... 
.end()

共有1个答案

翁文康
2023-03-14

您可以直接在文件使用者的文件endpoint上使用movefailed选项,而不是onexception选项。然后,如果出现异常,将移动原始文件。

所以就像是

from( "file://input?moveFailed=error_directory" )
.choice()
    .when( {filename matches *.gz} )
        {unzip Gzip contents}
        .to( "file://output" )
    .when( ) ... 
.end()

您可以在Camel doc:http://Camel.apache.org/file2中阅读更多关于movefailed的信息

 类似资料:
  • 我正在尝试重新排序在Apache Camel之上编写的应用程序摄取文件的顺序。文件需要按设定的顺序处理,如果应用程序没有按顺序处理文件,则文件中数据的各种聚合和其他处理将失败。为了保护应用程序,我尝试使用重新排序器EIP来确保文件按顺序处理。但是我发现重新排序器似乎会导致文件在下游组件通过交换之前被移动到. camel目录中。 我写了一个简单的例子来说明这个问题: 当测试尝试写入输出文件时,会引发

  • 我正在使用Camel2.15.2和部署到Tomcat容器中的Apache Commons Net3.3 on Java8。 问题是在处理了200多个文件(目录中超过4000个文件)后,路由始终停止,FTP客户端断开连接,并注销以下消息: 这是在相关路由开始时使用的URI。 有什么想法为什么连接可能在所有文件被处理之前关闭吗?

  • 我使用骆驼与hazelcast组件和面临的问题与交换头,当交换通过hazelcast seda。 我需要轮询目录中的文件,并将交换发送到seda hazelcast队列(以处理集群中的交换)。 这种情况有一个简单的例子。有两个路由,在其他JVM中运行: 首先是轮询文件: 第二个问题是: 当我试图阅读像或其他,我意识到它们是空的。 通过hazelcast seda组件传输交换时,是否可以保存标头?

  • 我在Spring Boot和camel-config.xml文件中使用Apache Camel。我创建了一个每秒运行一次的简单路由,并运行一个类方法: 我读了很多试图解决这个问题的书。我听到的是吼声: 发生的事情叫做“失火” 有一个参数允许配置失火说明 根据Apache Camel文档,如果使用的是cron表达式,则不能使用trigger.xxx选项(该选项允许配置失火指令)。 根据Apache

  • 我设置了一个endpoint,如下所示: 我用骆驼石英2.22.2和石英1.8.6 下面是从关闭到启动上下文的日志。

  • 但我的努力没有奏效。 谢谢你的帮助