我有一个从 FTP 服务器读取信息,然后处理消息的路由。该路由有 DeadLetterChannel 错误处理程序,当处理消息时抛出异常时,该处理程序将消息路由到某个 bean。
现在,当错误处理程序处理异常时,Camel 会假定一切顺利,并且仍然删除 FTP 文件。
如果我删除错误处理程序,Camel 在出现异常时不会删除该文件。
现在我的问题是,如何拥有 DeadLetterChannel 错误处理程序,同时在处理失败时阻止 Camel 删除 FTP 文件?
最佳答案
您可以在 ftp 端点上设置选项 noop=true
。然后该文件将被保留。
虽然您随后必须考虑如何在将来跳过拾取文件的过程?为此,您可以使用幂等存储库来跟踪您之前处理过的文件。或者另一种方法是在完成后移动文件等。
由于 ftp 组件扩展了文件组件,请参阅详细信息:http://camel.apache.org/file2
关于apache-camel - 当处理失败并且异常由错误处理程序处理时,如何阻止camel删除FTP文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17118825/