我正在使用Apache Camel Spring框架。我有一个组件FTP (从ftp获取文件)和Bean (处理文件并将其存储在数据库中)。我所缺少的是,当我处理这些文件并将其存储在数据库中时,我必须检查插入或更新是否成功(这也是有效的)。如果操作成功,我必须将文件移动到ftp上的另一个文件夹,如果操作不成功,我必须将其移动到ftp上的另一个文件夹。
因此,我想知道是否有一种简单的方法可以将文件从位置dirA复制到dirB
发布于 2015-07-22 20:24:37
你需要知道的一切都在这里,搜索move
和moveFailed
。
如果插入不成功,您可能抛出一个CamelException。然后,Camel会将该文件移动到您指定的文件夹。
ftp://10.10.10.10/toRead?move=inDB&moveFailed=notInDB
发布于 2015-07-22 20:37:50
由于我没有你的代码,我将通过展示我如何处理这种情况来回答:
根据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);
}
}
https://stackoverflow.com/questions/31556558
复制相似问题