2013-02-14 192 views
60

我在Tomcat 7中使用了管理器應用程序, ,我無法完全取消部署應用程序。無法在Tomcat中完全取消部署Web應用程序7

它說 FAIL - Unable to delete [F:\apache-tomcat-7.0.33\webapps\balaji]. The continued presence of this file may cause problems.

我讀的地方,因爲它的一些現象稱爲內存泄漏,如果我們解決它的問題就解決了。

任何人都可以告訴我這是什麼內存泄漏在tomcat 7,我們該如何解決? 我正在使用Windows 7操作系統。 如果我能夠修復它,我的un-deploy和re-deploy過程會順利運行嗎?

回答

110

這是在Windows環境中很常見,但有一個解決方案:

開放的context.xml從/ tomcat的/ conf文件夾和修改上下文匹配這樣的:

<Context antiResourceLocking="true"> 

編輯:更新了@JanM評論後的屬性。此前它還包含'antiJARLocking'

+0

感謝您的解決方案, 其工作良好..! – bali208 2013-02-16 05:00:08

+0

它只發生在Windows? Tomcat基於Java,並且在Tomcat上看到類似的Ubuntu問題。 – icedwater 2013-09-12 08:49:05

+1

我只是說這對於Windows來說很常見,至少對於我和我認識的人來說就是這種情況。對於Ubuntu來說,情況可能如此。 – mvlupan 2013-09-13 12:17:21

13

這是tomcat常見的問題之一。 Tomcat服務器在啓動時捕獲資源並部署它。在取消部署時,某些資源仍然會被tomcat使用。它不會釋放資源,但同時,tomcat中的另一個線程將嘗試清除相同的資源。因此,刪除這些資源將會失敗。 一個最好的方法是手動清理webapps中的應用程序根目錄。

+1

這並不總是奏效。如果一個jar文件被鎖定,你不能刪除父文件夾。停止應用程序並不總是釋放該jar。強制重新啓動Tomcat。 – cbmeeks 2017-12-19 13:39:57

0

我在Apache Tomcat/8.0.5中遇到過同樣的問題。我使用管理器應用程序完成了以下步驟,併爲我工作。

  • 關閉包含所有選項卡的瀏覽器(刪除緩存)。
  • 重新打開「管理員應用程序」,首先確保應用程序已停止(應啓用啓動按鈕) 。
  • 現在點擊undeploy。

我覺得當我們直接點擊undeploy時,首先鎖定罐子,停止應用程序並嘗試取消部署,但以FAIL - Unable to delete消息失敗。

如果你真的與狀態混淆了,關閉瀏覽器,重新啓動tomcat,打開'manager App',點擊stop然後取消部署。

0

反資源鎖:
如果爲true,Tomcat將阻止任何文件鎖定。這將顯着影響應用程序的啓動時間,但允許在可能發生文件鎖定的平臺或配置上完全部署Web應用程序並取消部署。如果未指定,則默認值爲false。

請注意,此設置爲true,有一定的副作用,包括JSP的在運行的服務器重裝禁用:看到Bugzilla的37668.

請注意,設置此標誌爲true,在應用程序是的appBase之外對於主機(默認情況下是webapps目錄)將導致應用程序在Tomcat關閉時被刪除。您可能不希望這樣做,所以在爲其主機的appBase之外的webapp上設置antiResourceLocking = true之前,請三思。