2010-12-08 75 views
2

我可以刪除除lib文件夾以外的所有東西(JBoss說應用程序未部署,但他不會釋放jar)。如何在不停止服務器的情況下移除JBoss中爆炸的戰爭?

我綁定了jboss-maven-plugin和hard-undeploy,但是它說這個文件(doc表示它也支持dirs)被取消部署,但是它沒有取消部署應用程序。

我使用jboss-4.2.1.GA。我敢打賭,它可以通過jmx控制檯解除部署,但我無法找出如何。

+0

Hotdeployment (取消部署)不應該用於生產環境。 – 2010-12-08 10:22:36

+0

我不同意,我認爲它更高效,不重新部署webapp :)我認爲你的意思是生產環境。 – IAdapter 2010-12-08 20:28:35

回答

1

的方式煤層執行取消部署展開的應用是

<target name="unexplode" description="Undeploy the exploded archive"> 
     <delete failonerror="no"> 
      <fileset dir="${ear.deploy.dir}"> 
       <exclude name="**/*.jar"/> 
      </fileset> 
     </delete> 
     <delete file="${deploy.dir}/${project.name}-ds.xml" failonerror="no"/> 
     <delete dir="${ear.deploy.dir}" failonerror="no"/> 
</target> 

這通常工作好,有時我需要重新啓動(通過觸摸這是由部署observerd文件)

<target name="restart-exploded"> 
    <antcall target="explode"/> 
    <touch file="${ear.deploy.dir}/META-INF/application.xml"/> 
</target> 
0

在jboss安裝下的工作和tmp文件夾下手動刪除應用程序。之前停止JBoss並在之後啓動它。這將有所幫助。

0

我覺得是什麼情況是:

  1. WAR文件部署和爆炸。
  2. 當您的應用程序啓動時,其類加載器會打開JAR文件並將其鎖定,以防止其被刪除或覆蓋。
  3. 然後停止並取消部署應用程序。
  4. 不幸的是,類加載器仍然存在,它仍然存在的鎖可以防止刪除JAR文件。

的類加載器可能仍然存在,原因有二:

  • 這可能是無法訪問的,但GC沒有運行。
  • 它可能已被泄漏,所以即使GC運行也不會被刪除。

唯一可靠的解決方案是關閉並重新啓動JBoss。

相關問題