我正在使用Apache Camel Spring Framework。我有一个组件FTP(从ftp获取文件)和Bean(进程文件并将其存储在数据库中)。我所遗漏的是当我处理这些文件并将其存储在数据库中时,我必须检查插入或更新是否成功(这也有效)。如果操作成功,我必须将文件移动到ftp上的另一个文件夹,如果不成功,我必须将其移动到ftp上的另一个文件夹。
所以我想问是否有一种简单的方法可以将文件从dirA位置复制到dirB
答案 0 :(得分:1)
您需要知道的一切都在Apache Camel: File2
搜索move
和moveFailed
。
如果插入不成功,您可以抛出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);
}
}