您能否舉一個例子,我如何通過JMX調用WroConfiguration.reloadCache()
方法? 我使用Wildfly,單例啓動ejb,以防萬一。上如何通過JMX以編程方式更新緩存/模型?
JMX被切換:jmxEnabled=true
您能否舉一個例子,我如何通過JMX調用WroConfiguration.reloadCache()
方法? 我使用Wildfly,單例啓動ejb,以防萬一。上如何通過JMX以編程方式更新緩存/模型?
JMX被切換:jmxEnabled=true
下面是一個例子,並在Java EE的環境要求:
cacheUpdatePeriod=0 modelUpdatePeriod=0 debug=false disableCache=true jmxEnabled=true ...
try { MBeanServer mbs = ManagementFactory.getPlatformMBeanServer(); ObjectName name = new ObjectName("wro4j-ROOT:type=WroConfiguration"); mbs.invoke(name, "reloadCache", null, null); mbs.invoke(name, "reloadModel", null, null); } catch (InstanceNotFoundException e) { logger.warn("Could not find wro4j MBean. It has not been initiated yet"); } catch (Exception e) { logger.error(e); }
當jmxEnabled配置被設置爲true時,MBean被自動註冊。如果打開jconsole,應該看到一個名爲「wro4j-ROOT」的MBean(MBean名稱根據應用程序上下文名稱是動態的)。在那裏您應該找到名爲的操作reloadModel & reloadCache可以通過JMX觸發。
除了使用JMX,我推薦使用以下配置:resourceWatcherUpdatePeriod(將此值設置爲大於0的值)。這在開發過程中很有用,在指定的時間間隔內即可檢測到任何更改。