您能否举个例子,我如何调用WroConfiguration.reloadCache()
通过 JMX 调用该方法?我使用 Wildfly,单例启动 ejb,以防万一。
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 名称是动态的,基于应用程序上下文名称)。在那里你应该找到可以通过 JMX 触发的名为reloadModel & reloadCache的操作。
除了使用 JMX,我建议使用以下配置:resourceWatcherUpdatePeriod(将此值设置为大于 0 的值)。这在开发过程中很有用,因为在指定的时间间隔内会立即检测到任何更改。