Java 如何通过JMX以编程方式更新wro缓存/模型?

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触发 除

请给出一个例子,我如何通过JMX调用
WroConfiguration.reloadCache()
方法? 我使用Wildfly,单例启动ejb,以防万一

JMX已打开:
jmxEnabled=true

当jmxEnabled配置设置为true时,MBean将自动注册。如果打开jconsole,应该会看到一个名为“wro4j ROOT”的MBean(MBean名称基于应用程序上下文名称是动态的)。在那里,您应该可以找到名为reloadModel&reloadCache的操作,该操作可以通过JMX触发


除了使用JMX之外,我建议使用以下配置:resourceWatcherUpdatePeriod(将此值设置为大于0的值)。这在开发过程中非常有用,因为在指定的时间间隔内,任何更改都会被即时检测到。

以下是Java EE环境中的一个示例和要求:

  • 在wro.properties中,应用了以下属性:
  • 不要试图在初始方法中应用@Singleton/@Startup注释并应用@PostConstruct注释来更新ejbbean中的wro缓存模型。Wro MBean尚未注册,因此无法运行
  • 例子本身:
  • Alexandr,
    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);
    }