2010-09-29 145 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对象,以便我可以在我的应用程序中检索它。通过这种方式,您不必重新部署整个应用程序,并且可以在应用程序中使用新配​​置。

如果您必须做其他事情而不是简单地重新加载应用程序,您可以在此服务中执行此操作。