2009-09-17 48 views
4

我正在爲我們的產品配置一個安裝程序,到目前爲止,它通常在tomcat上作爲war文件分發。一旦tomcat爆炸了目錄,用戶必須打開一個屬性文件並設置它們的數據庫連接信息。我希望安裝程序執行此操作(我們使用的是install4j),但似乎沒有內置方法來修改war文件中的文本文件。我可以讓安裝程序將應用程序部署爲爆炸目錄,這樣可以節省我在這裏的麻煩,但是通過部署而不是部署戰爭會損失什麼?部署war文件而不是爆炸目錄有什麼好處?

回答

3

將數據庫連接設置爲JNDI數據源可能會更好,而不是手動編輯webapp /目錄中的屬性文件。如果要允許用戶從.WAR歸檔重新部署應用程序而不覆蓋其本地配置更改,這一點尤其重要。

當然,JNDI設置也不會通過安裝程序完成,因爲使用的機制因應用服務器而異。但是,任何有能力的Java應用程序服務器管理員都應該知道如何配置指定的數據源。此外,通過將責任委託給應用程序服務器,您可以讓用戶利用連接池,集羣以及與選擇的應用程序服務器捆綁的數據源實施提供的任何其他功能。

+0

該產品針對的人不知道他們在做什麼,因此安裝程序;)我們實際上捆綁了tomcat和mysql,我應該在上面說過。 – UrLicht 2009-09-18 16:29:45

+0

在這種情況下,您的安裝程序應該以編程方式配置Tomcat JNDI數據庫,並保留WAR內容。 Tomcat的配置語法有很好的XML記錄,在服務器重啓和webapp重新部署操作中穩定。 – rcoder 2009-09-18 17:22:08

0

沒有多少我會想 - 也許有點磁盤空間,但如果這不是一個問題,你會沒事的。你是否想過讓安裝程序生成屬性文件並使用ZIP庫(.WAR實際上是一個.ZIP--將其重命名爲.ZIP並查看你得到的:))來替換或添加它?

+0

是的,我知道這是一個拉鍊。我只是想知道,如果tomcat做不同的事情:當它獲取文件夾而不是戰爭文件時部署/取消部署。如果我可以放棄部署文件夾,它將爲我省去額外編寫處理zip文件的麻煩。 – UrLicht 2009-09-18 16:32:48

相關問題