2013-05-08 28 views
0

根據post,我創建了使用Mule和澤西島的文件上傳休息服務。一切工作正常,但與此問題是,不知何故騾不釋放在服務器端上傳的文件的鎖。所以當mule服務器運行時你不能移動或刪除文件。我怎樣才能消除這個限制?使用Mule的文件上傳休息服務錯誤

+0

此博客中顯示的「FileUploadService」不使用Mule的文件傳輸,因此您遇到的鎖必須來自其他位置。你是否在執行上傳的HTTP客戶端中獲得'200 File上傳到......的響應? – 2013-05-08 16:31:35

+0

我不使用騾子的文件傳輸..我只是從休息服務獲取輸入流並將其寫入服務器端。在返回輸出之前,我關閉了所有的流,並且是的,我正在將200 File上傳到響應中。文件也正在上傳,但鎖定沒有被釋放。當我關閉騾應用程序,然後只有我可以訪問上傳的文件 – somaniA 2013-05-09 05:42:52

回答

0

從你說的意見是什麼,看着你提到的博客文章的源代碼,我認爲問題就出在這裏:

finally{ 
    if(out !=null) 
    try { 
    uploadedInputStream.close(); 
    out.close(); 
    } catch (IOException e) { 
    // TODO Auto-generated catch block 
    e.printStackTrace(); 
    } 

我的印象是uploadedInputStream.close()失敗並out.close()永遠不會釋放。關閉uploadedInputStream在這裏沒用,所以我建議你刪除該行並查看鎖是否被刪除。

+0

大衛..你是正確的..在這個代碼只有問題...我試着用Apache公用IO ...和它的工作很好...謝謝爲您的及時幫助和答案:) – somaniA 2013-05-10 03:17:42

+0

,但仍然爲什麼現有的代碼不工作..即使我把out.close()第一,雖然沒有例外... – somaniA 2013-05-10 06:19:09

+0

使用Commons IO是最好的,我沒有當然,這對你是好的。但是,也許上面的原始代碼,你沒有看到異常,因爲stderr被捕獲,並沒有發送到控制檯?你有沒有嘗試一步調試這段代碼? – 2013-05-10 15:52:38