Java 在ftp上移动文件
我正在使用apachecamel-Spring框架。我有一个组件FTP(从FTP获取文件)和Bean(处理文件并将其存储在数据库中)。我所缺少的是,当我处理这些文件并将其存储在数据库中时,我必须检查插入或更新是否成功(这也起作用)。如果操作成功,我必须将文件移动到ftp上的另一个文件夹,如果操作失败,我必须将其移动到ftp上的另一个文件夹Java 在ftp上移动文件,java,ftp,apache-camel,Java,Ftp,Apache Camel,我正在使用apachecamel-Spring框架。我有一个组件FTP(从FTP获取文件)和Bean(处理文件并将其存储在数据库中)。我所缺少的是,当我处理这些文件并将其存储在数据库中时,我必须检查插入或更新是否成功(这也起作用)。如果操作成功,我必须将文件移动到ftp上的另一个文件夹,如果操作失败,我必须将其移动到ftp上的另一个文件夹 所以我想问的是,是否有一种简单的方法可以将文件从位置dirA复制到dirB您需要知道的一切都在这里 搜索移动和移动失败 如果插入不成功,您可能会抛出错误。然后
所以我想问的是,是否有一种简单的方法可以将文件从位置dirA复制到dirB您需要知道的一切都在这里 搜索
移动
和移动失败
如果插入不成功,您可能会抛出错误。然后,Camel将文件移动到指定的文件夹中
ftp://10.10.10.10/toRead?move=inDB&moveFailed=notInDB
由于我没有您的代码,我将通过展示我将如何处理此类情况来回答: 根据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);
}
}
骆驼路线很简单。FTP->Bean。Bean获取消息(来自FTP的文件)并将其插入数据库。我可以检查插入是否成功,我只需要知道如何将文件从一个文件夹移动到另一个文件夹。例如:读取位置上的文件_ftp://10.10.10.10/toRead/somefile.csv ->处理它并将其存储在数据库->将其移动到_ftp://10.10.10.10/inDB/ (这是我缺少的部分)。我想这是我能提供的最好的解释。我希望你能理解,这是一个失败的选择-