当我试图在Camel中处理文件并且失败时,我尝试将文件移动到错误目录,但得到以下错误消息:
org.apache.camel.component.file.GenericFileOperationFailedException: Cannot delete file:....
我不知道Windows是否正在锁定文件,但是我已经关闭了任何可能导致这种情况发生的流。如果这是Windows,我该怎么做才能释放这个锁?
路由是一个简单的from()... process().. to()
,在process()
之后设置了一些头,这是to()
,这失败了,文件没有像预期的那样移动到错误目录。
谢谢。
可能和这个有关:
在Windows上处理后不能移动/删除文件
在Windows平台上Camel 1.5.x有一个潜在的问题。那处理后不能移动或删除文件。你应该找一个异常抛出。
的解决方法是在消费后将主体转换为String使用convertBodyTo:例如从("文件://收件箱").convertBodyTo (String.class),("文件://发件箱");。
应该在Camel 1.6.0中修复这个问题,但我们希望获取关于这个问题的反馈。如果你用的是Windows,请给我走。
似乎有一个流氓流需要更改。我使用Process Explorer发现了这一点,因为它两次识别了相同的文件。一个锁被删除了,另一个没有,从这里我发现了一个在catch
块中没有处理的开放流。