2013-02-20 34 views
1

有沒有一種方法可以從JAVA WAR內部以編程方式請求應用服務器重新發送WAR。我需要每天重新啓動我的Web應用程序,並希望能夠從應用程序本身強制重新加載。又名System.forceReload()或類似的東西....任何想法的人?從JAVA內部強制重新加載JAVA WAR

回答

0

你可以「觸摸」一個文件,如web.xml誘使容器啓動重新加載?非常黑客,我知道:-)

對於更強大的解決方案,我會考慮一個外部cron腳本,我必須承認,可能會強行停止/啓動容器本身。例如,在修復任何內存泄漏方面,這可能會「更好」。

+0

不幸的是,戰爭是在雲中,我沒有容易的程序訪問容器 - 只是一個Web控制檯,我登錄到控制應用程序... – 2013-02-20 13:19:25

+0

啊,那麼棘手呢;您是否可以通過網址直接控制http://www.hostname.com/manager/reload?name=myapp?猜測不,但值得一問... – Brian 2013-02-20 13:54:39

0

從應用程序內部做這樣的事情不是一個好主意。

更好的方法是在外部進行。您可以安排可以爲您做同樣事情的腳本。

+0

不幸的是,戰爭是在雲託管所以我沒有文件系統/操作系統使用... – 2013-02-20 13:15:41

0

它可能取決於你的容器,但我沒有看到我用過的容器中的這種功能。

雖然我能理解你的需求,但我建議一個更好的方法是如果可以的話,可能會使用cron作業來彈出容器本身。

如果你正在使用JBoss,你也許能夠做一些與Twiddle Utility

JMX/MBean的也可能是一種選擇 - 但是,所有的這些都是實際的應用程序之外。

+0

我剛纔看到您的評論下面(重新在雲端) - 在GAE(谷歌)你可以用類似cron的方式安排任務,可能包括應用程序本身。這是你的選擇嗎? – 2013-02-20 13:29:27

+0

詢問容器供應商是否可行。在他們的網絡前端似乎沒有任何任務管理器等。謝謝 – 2013-02-20 13:55:24