Java 如何通过JMX以编程方式更新wro缓存/模型?
请给出一个例子,我如何通过JMX调用Java 如何通过JMX以编程方式更新wro缓存/模型?,java,caching,jmx,wro4j,Java,Caching,Jmx,Wro4j,请给出一个例子,我如何通过JMX调用WroConfiguration.reloadCache()方法? 我使用Wildfly,单例启动ejb,以防万一 JMX已打开:jmxEnabled=true当jmxEnabled配置设置为true时,MBean将自动注册。如果打开jconsole,应该会看到一个名为“wro4j ROOT”的MBean(MBean名称基于应用程序上下文名称是动态的)。在那里,您应该可以找到名为reloadModel&reloadCache的操作,该操作可以通过JMX触发 除
WroConfiguration.reloadCache()
方法?
我使用Wildfly,单例启动ejb,以防万一
JMX已打开:jmxEnabled=true
当jmxEnabled配置设置为true时,MBean将自动注册。如果打开jconsole,应该会看到一个名为“wro4j ROOT”的MBean(MBean名称基于应用程序上下文名称是动态的)。在那里,您应该可以找到名为reloadModel&reloadCache的操作,该操作可以通过JMX触发
除了使用JMX之外,我建议使用以下配置:resourceWatcherUpdatePeriod(将此值设置为大于0的值)。这在开发过程中非常有用,因为在指定的时间间隔内,任何更改都会被即时检测到。以下是Java EE环境中的一个示例和要求:
mbs.invoke(name,“reloadCache”,null,null)代码>这将最大年龄设置为1岁或315360000?
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);
}