2012-04-16 53 views
1

編程式取消部署Web應用程序(WAR)如果答案是肯定的,那麼可以爲不同的服務器取消部署不同的方式。以編程方式從服務器取消部署Web應用程序(特定於WAR)是否可以從服務器取消部署Web應用程序(特別是WAR)是否可能從服務器

我專門尋找來自以下服務器

  • 取消部署Tomcat的
  • JBoss的
  • 碼頭
  • GlassFish的
  • 的Websphere
  • 的Weblogic
  • Geronimo的
  • 樹脂
  • 的JOnAS

我知道這可能是一個漫長的答案,如果取消部署方式是在不同的服務器上的不同。在這種情況下,我非常樂意爲這些信息獲得一些通用的解決方案或指針

回答

2

桑迪普,

我不知道一個標準的,容器內的一個網絡應用程序取消部署的另一種方式。我的直覺是,應用程序本身是「包含」的,規範並不打算讓他們管理他們的容器。

也就是說,大多數/所有這些Web容器都提供了用於部署和取消部署Web應用程序的API。雖然這些方法並不常見,但是當我的開發人員爲我們的uDeploy產品創建新的集成時,我們必須依次進行研究。例如,在Tomcat中,您可以使用Tomcat管理器API。您可以使用開源Apache Ant任務作爲您想要執行的示例:http://tomcat.apache.org/tomcat-5.5-doc/manager-howto.html#Executing_Manager_Commands_With_Ant

對於Websphere,您可能正在編寫jython腳本或者針對JMX API執行一些自己的編程。Weblogic介於兩者之間,因爲它提供了一些你可以借用的漂亮的Ant腳本,以及直接的API。

祝你好運!

+0

謝謝,這是有道理的 – 2012-04-18 05:43:52

0

我不確定您的意思是「取消部署」,但如果您具有SSH訪問Web服務器的權限,則可以安裝Git源代碼控制管理可以「切換」不同版本的Web應用程序,而不管相關的Web服務器如何。例如,假設您有兩個Git分支:1)「生產」和2)「脫機」。生產分支將包含Web應用程序的生產版本。 「離線」分支只能包含一個文件,例如index.html,告訴用戶該網站「維護關閉」或您有什麼。

您切換分支與:

git checkout production 

git checkout offline 

和git自動換出在文件系統中的所有文件和Web服務器永遠不知道的差別。您可以編寫一個shell腳本來執行此操作,甚至可以將它指定爲cron作業,以便在計劃的時間發生,如果您想要的話。

請注意,當您這樣做時您將終止所有用戶會話,因此您需要按計劃的時間間隔或在通知用戶之後執行此操作。

你可以找到你需要在這裏需要使用git寄託都:http://git-scm.com/

+0

通過取消部署我的意思是正確地從服務器上刪除Web應用程序並進行必要的清理。例如,在tomcat中,這可能只是簡單地從webapps目錄中刪除應用程序文件夾或.war文件(儘管我不確定這是否正確並正確註銷它) – 2012-04-16 14:24:33

+0

正如您在文章中所說的,您必須處理特定對腳本中不同Web服務器的要求,我不能給你Tomcat的具體信息。但是,如果webapps文件夾是git存儲庫的一部分,那麼檢出不包含.war文件的其他分支,可以有效地從文件系統中刪除該文件。您還可以在「undeploy」.sh腳本中混合任何其他文件系統操作/命令,即,您不會僅限於git命令。 – tqheel 2012-04-16 14:36:24

+0

嗨tqheel謝謝你的回答,並抱歉沒有讓自己清楚。其實我正在尋找一種java方式來做到這一點。從更廣的角度來看,我將在服務器和許多其他小型Web應用程序上部署主要的Web應用程序,這些應用程序將作爲插件在主要Web應用程序中使用。我想通過點擊UI中的一個按鈕,讓主要web應用程序的管理員取消部署這些小型web應用程序(我將它作爲插件) – 2012-04-17 05:12:14

相關問題