Camel移动文件失败

时间:2015-07-15 18:52:34

标签: apache-camel

我正在尝试编写扫描'input'目录的路由,如果找到.gz文件,将内容提取到辅助目录,如果发生错误(例如损坏的.gz),则会将文件移动到错误目录

实际发生的是文件开始正确地写出内容,然后发生错误 - 一个GZLIB异常,原件被正确放入错误目录但是'input'中的.gz没有被删除,因为例外

因此路线将不断打开,开始提取然后失败文件并不断重复一遍又一遍。当它失败时我需要它从'input'目录中删除文件,因此不会重新处理它。我期望.to()到文件位置来实现这一点,因为它通常表现为移动。

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 个答案:

答案 0 :(得分:3)

您可以直接在文件使用者的文件端点上使用onException选项代替moveFailed。然后,如果有异常,原始文件将被移动。

类似

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

您可以在Camel文档中详细了解moveFailedhttp://camel.apache.org/file2