当我尝试在Camel中处理文件并且它失败时我尝试将文件移动到错误目录但是收到以下错误消息:
org.apache.camel.component.file.GenericFileOperationFailedException:无法删除文件:....
我不知道Windows是否锁定了该文件,但我已经关闭了可能导致这种情况发生在我身边的任何流。如果这是Windows,我该怎么办才能释放这个锁?
路由是一个简单的process()
,并且在to()
之后设置了一些标头。{{1}}这个标题失败并且文件没有按预期移动到错误目录中。
感谢。
答案 0 :(得分:2)
可能与this有关:
在Windows上处理后无法移动/删除文件
使用Camel 1.5.x在Windows平台上存在潜在问题。那 处理后无法移动或删除文件。你应该得到一个 抛出异常。
解决方法是在使用后将主体转换为String 使用convertBodyTo:例如 从( “文件://收件箱”).convertBodyTo(String.class)。为了( “文件://发件箱”);
。应该有一个修复Camel 1.6.0来解决这个问题,但我们希望如此 获得有关此问题的反馈。所以,如果你在Windows上,请给它 一个去。
答案 1 :(得分:2)
似乎有一个需要改变的流氓流。我发现这是使用 Process Explorer ,因为它两次识别同一个文件。一个锁已被移除而另一个锁未被移除,因此我找到了一个未在catch
块中处理的开放流。