我的配置MBean持久性存在问题。我的配置:MBean持久性
<bean id="adminMBean" class="pl.mobileexperts.catchme.mbeans.AdminSettingsMBean"></bean>
<bean id="exporter" class="org.springframework.jmx.export.MBeanExporter">
<property name="assembler" ref="assembler" />
<property name="autodetect" value="true" />
<property name="namingStrategy" ref="namingStrategy"/>
</bean>
<bean id="attributeSource" class="org.springframework.jmx.export.annotation.AnnotationJmxAttributeSource" />
<bean id="namingStrategy" class="org.springframework.jmx.export.naming.MetadataNamingStrategy">
<property name="attributeSource" ref="attributeSource" />
</bean>
<bean id="assembler" class="org.springframework.jmx.export.assembler.MetadataMBeanInfoAssembler">
<property name="attributeSource" ref="attributeSource" />
</bean>
@ManagedResource(objectName = "pl.mobileexperts.catchme:name=adminMBean",
description ="admin settings",
persistPolicy = "OnUpdate",
persistLocation = "c:/", persistName = "adminSettings.jmx")
public class AdminSettingsMBean {
private boolean moderatorModeEnabled;
public AdminSettingsMBean() {
}
@ManagedAttribute(persistPolicy = "OnUpdate")
public boolean isModeratorModeEnabled() {
return moderatorModeEnabled;
}
@ManagedAttribute(persistPolicy = "OnUpdate")
public void setModeratorModeEnabled(boolean moderatorModeEnabled) {
this.moderatorModeEnabled = moderatorModeEnabled;
}
}
我的目标是在属性更改后保存状态(保存到文件或元数据 - 不是分贝)。在JBoss重新启动后,我的MBean用标准值初始化。看起来PersistPolicy不工作......我试图实现PersistentMBean,但store()和load()从未被调用过。我发现它可能是一个JBoss JMX实现问题。还有一些人使用AOP和MBean中的注释方法来存储它们。所有这些帖子都是从2008年到2010年的,所以可能有所改变?
我的JBoss的配置是默认(的jboss-service.xml的)
您正在使用哪个版本的JBoss?它支持'persistPolicy'吗? – 2012-02-20 10:28:12
jboss-5.1.0.GA https://community.jboss.org/thread/175100?tstart = 0我继续搜索 – 2012-02-20 10:36:00
对于一些bizzare的原因,我真的不知道,这个页面https://docs.oracle.com/javase/7/docs/api/javax/management/PersistentMBean.html告诉我,onUpdate会确实不叫store()。尝试改变总是,看看是否有帮助。 (我也非常震惊) – 2016-02-17 18:49:25