在ftp上移动文件

时间:2015-07-22 07:28:43

标签: java ftp apache-camel

我正在使用Apache Camel Spring Framework。我有一个组件FTP(从ftp获取文件)和Bean(进程文件并将其存储在数据库中)。我所遗漏的是当我处理这些文件并将其存储在数据库中时,我必须检查插入或更新是否成功(这也有效)。如果操作成功,我必须将文件移动到ftp上的另一个文件夹,如果不成功,我必须将其移动到ftp上的另一个文件夹。

所以我想问是否有一种简单的方法可以将文件从dirA位置复制到dirB

2 个答案:

答案 0 :(得分:1)

您需要知道的一切都在Apache Camel: File2 搜索movemoveFailed

如果插入不成功,您可以抛出CamelException。然后,Camel会将文件移动到您指定的文件夹。

ftp://10.10.10.10/toRead?move=inDB&moveFailed=notInDB

答案 1 :(得分:0)

由于我没有您的代码,我将通过展示如何管理此类案例来回答:

根据bean处理的结果创建两个单独的路由。

from("{{your.ftp.source}}")
    .bean( new ProcessAndStoreFileBean())
    .choice()
        .when(property("fileProcessingResult").equalsTo(true))
            .to("ftp://yourserver/Destination/Folder/Success")
        .otherwise()
            .to("ftp://yourserver/Destination/Folder/Failure")
    .end();

在Bean方法中我只想:

class ProcessAndStoreFileBean {

    @Handler
    public void processAndSaveInDb(Exchange exchange){

        // many line to do the job...

        if( success ) 
            exchange.setProperty("fileProcessingResult", true);
        else{
            exchange.setProperty("fileProcessingResult", false);
    }
}