2011-06-24 155 views
3

我需要有一個自動安裝/更新的Web應用程序在JBoss 6.運行Web應用程序自動安裝

我至少需要: *停止服務器 *複製的戰爭部署目錄 *申請數據庫更新腳本 *啓動服務器

你知道一個工具或開源項目嗎?

THX 克里斯托夫

+0

詹金斯這樣做。我想知道如何以及如何利用它。他們使用碼頭。 –

回答

0

有關信息,我們終於實現了我們自己的解決方案。基本上從FTP

  1. 一個作業下載包含Java編寫的
  2. 一個解壓安裝應用程序的ZIP文件,安裝程序運行。這個執行SQL更新腳本,然後使用JBoss JMX API部署WAR文件。但是,對於JBoss集羣支持,我們必須編寫自己的MBean,以便在每個節點上覆制WAR文件。
0

大多數Servlet容器必須不停止服務器部署的能力。有些人通過將WAR文件放入由Web服務器輪詢的特定目錄中(如果配置正確),而其他人則公開「上傳」Web API。

JBoss通常使用Tomcat作爲它的servlet容器。雖然我不知道您的JBoss版本在使用哪個版本,但Tomcat已經支持在運行的服務器上部署很長時間。 Perhaps the documentation for Tomcat 5.5就足以讓你確定你需要做什麼改變(如果有的話)。

如果您確實需要停止服務器,Tomcat可以從外部程序中停止服務器(它只需要發送正確的消息);但是,一旦停止,Tomcat不能收到「啓動」消息,它將不得不手動啓動。

更好的解決方案是通過查看servlet生命週期事件來檢測應用程序何時啓動,然後在「首次啓動」事件時「檢查」數據庫。如果數據庫檢測顯示數據庫與預期版本不匹配,請應用更改。數據庫檢測顯示數據庫是最新的,然後開始正常的請求處理。這樣就可以將Web應用程序中的代碼以易於部署和升級的方式隔離開來,但這意味着需要更多的工作來定製應用程序來封裝它自己的數據庫維護職責。

如果沒有這種技術,您將不得不依靠外部工具完成工作。通常這樣的工具需要資源的大量整合(有時跨多臺機器)。在這種情況下,通常應用企業作業調度程序或工作流引擎(使用您自己的書面適配器)來解決手頭的問題。

+0

感謝您花時間回答。的確,我可以開發我的定製解決方案。我已經考慮過Cargo的容器管理了。 – Christophe

+0

但實際上我是第一次尋找現有的解決方案;-) – Christophe

相關問題