请举例说明如何通过JMX调用WroConfiguration.reloadCache()
方法?
我使用Wildfly,singleton启动ejb,以防它确实重要。
JMX已开启:jmxEnabled=true
答案 0 :(得分:1)
当 jmxEnabled 配置设置为true时,将自动注册MBean。如果你打开jconsole,你应该看到一个名为" wro4j-ROOT"的MBean。 (MBean名称基于应用程序上下文名称是动态的)。在那里你应该找到名为 reloadModel &的操作。 reloadCache ,可以通过JMX触发。
除了使用JMX之外,我建议使用以下配置: resourceWatcherUpdatePeriod (将此值设置为大于0的值)。这在开发过程中非常有用,只要在指定的时间间隔内检测到任何更改。
答案 1 :(得分:1)
以下是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); }