2010-03-23 79 views
5

在glassfish中重新部署正在運行的應用程序的新版本的正確方法是什麼?我有一個WAR正在運行,並且我做了更改。我認爲做一個undeploy +部署可能是正確的,但glassfish(v3)經常崩潰,當我取消部署。Glassfish戰爭生命週期問題

在glassfish中重新部署正在運行的應用程序的正確方法是什麼?

回答

4

有許多方法可將Web應用程序重新部署到GlassFish v3上。

我建議的方法是「asadmin的重新部署--name富--properties keepSessions =真foo.war」(或使用目錄部署Web應用程序...)

你可以看一下man page for the deploy subcommand of asadmin瞭解更多細節。

我幾乎沒有取消部署,然後部署....它需要太長時間。

我幾乎沒有創建一個點戰文件....我通常做目錄部署,這消除了用盡創建,然後爆炸戰爭文件的時間。

通過使用目錄部署,我還可以將調整應用到jsp文件並測試它們,而無需重建/重新部署步驟。

我喜歡在開發時使用keepSessions屬性。我不知道這個屬性是否會在生產環境中有用。

您描述的方法可能不會導致服務器崩潰......請在https://glassfish.dev.java.net/servlets/ProjectIssues處提交問題,以便團隊成員可以找出問題所在。

+0

@vkraemer - 偉大的提示,謝謝。 – Robot 2010-03-23 12:08:51

0

不知道爲什麼V3應該是不同的,但在V2中,這正是我們所做的。我們首先取消部署,然後再部署。

您是否使用admin GUI或asadmin(命令行)來執行此操作?這兩種行爲是一樣的嗎?

2

undeploy意味着消除一個Web應用程序的所有痕跡:

  • 它的類加載器
  • 編譯的JSP
  • 文件持久的HTTP會話

貴的問題發生時? GlassFish真的會崩潰嗎?你可以給我們更多的細節。


爲了記錄在案,GlassFish的第三版有redeploy命令:

asadmin redeploy --name mywar mywar.war 

但由於redeploy = undeploy + deploy,這不會解決你的問題。

+0

那麼,不是*所有* ...在Windows上它不能刪除WEB-INF/lib中的jar文件,所以那些在周圍。當我第一次看到它時非常不安,直到看到陳舊的文件列表。 :-) – Snekse 2012-09-26 22:44:38