2015-06-02 53 views
3

當我試圖處理駱駝文件和失敗我嘗試將文件移動到一個錯誤的目錄,但收到以下錯誤信息:駱駝刪除文件異常

org.apache.camel.component。 file.GenericFileOperationFailedException:無法刪除文件:....

我不知道Windows是否鎖定文件,但我已經關閉了任何可能導致這種情況發生在我身邊的流。如果這是Windows,我該怎麼做才能釋放此鎖?

的路線是一個簡單的from()... process().. to()還有一些標題中的process()後設置它是to()哪裏失敗,且預期該文件不移動到錯誤目錄。

謝謝。

+2

使用[handle](https://technet.microsoft.com/en-us/sysinternals/bb896655.aspx)或processexplorer查看打開的句柄。那麼你可以猜測一下。 – Jayan

+0

我可以看到文件顯示在那裏,它被我的Java進程鎖定。有時會消失,而我沒有這個問題,有時它不會那麼就不能移動。 –

回答

2

似乎有一個流氓流需要改變。我發現使用Process Explorer,因爲它識別了兩次相同的文件。一個鎖被刪除,另一個不是,從這裏我找到了一個未在catch塊中處理的開放流。

+1

輝煌,我有同樣的問題 - 謝謝! – codebox

2

或許這是與this

無法移動/刪除處理後的文件在Windows

有Windows平臺上與駱駝1.5.x.一個潛在的問題那 它處理後不能移動或刪除文件。你應該得到一個 異常拋出。

解決方法是將本體轉換爲字符串使用convertBodyTo消耗 後:例如,從(「文件://收件箱」) .convertBodyTo(String.class)。爲了(「文件://發件箱」) ;。

在Camel 1.6.0中應該有一個修復來解決這個問題,但是我們希望 能夠得到關於這個問題的反饋。所以如果你在Windows上,請給它 。

+0

我正在運行駱駝2.13.0所以這應該不是一個問題,因爲它已被固定在1.6.0。 –