我的配置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