2010-09-29 101 views
2

據我所知,JBoss *監視/deploy中的各種文件類型,並在文件更改時執行某些操作。例如,當它的last-modified時間改變時,JBoss將重新部署一個EAR。JBoss自動重新部署

因此,我會用一些非常討厭的代碼,使一個EAR重新部署本身,就像這樣:

URL url = this.getClass().getClassLoader().getResource("../RavenWeb.ear"); 
String path = url.getPath(); 

File ear = new File(path); 
ear.setLastModified(System.currentTimeMillis()); 

但我真的想要做的只是已經JBoss的重新部署Web應用程序時,外部配置文件更改。說配置文件居住在C:/foo/bar.properties

是否有MBean或其他方式完成這項工作,不會讓我mauled by velociraptors


*我正在使用JBoss 5.1.0,如果它很重要。

回答

0

我認爲你最好的選擇是擁有一個MBean,它會在你調用一個函數時重新載入你的配置文件。如果你不想自動發生這種情況,你也可以考慮讓MBean 爲你處理的配置文件。這樣,您只需更新MBean屬性,而不必更改配置文件。

+0

重新加載配置文件不是問題。我的應用程序可以很容易地監控文件本身,但我希望將責任委託給他人,更不用說我在應用程序本質上管理自己的生命週期時得到的不好的口味。 – 2010-09-29 15:09:13

0

我已將Log4JService實施複製並放入.sar中。

它只是輪詢配置文件,解析它並在JNDI中放置一個Configuration對象,以便我可以在我的應用程序中檢索它。通過這種方式,您不必重新部署整個應用程序,並且可以在應用程序中使用新配​​置。

如果您必須做其他事情而不是簡單地重新加載應用程序,您可以在此服務中執行此操作。