public abstract class DynamicMBeanAbstract
extends java.lang.Object
implements javax.management.DynamicMBean
注册MBean的代码样例:
DynamicMBeanAbstract mBean;
String mBeanName;
mBeanName = "com.hynnet:type=Executable,name=" + this.getClass().getSimpleName();
// 添加MBean
try
{
if (MBeanServerFactory.getMBeanServer().isRegistered(mBeanName))
{
MBeanServerFactory.getMBeanServer().unregisterMBean(mBeanName);
logger.info("multiple instances for same host, jmx numbers might be off");
}
MBeanServerFactory.getMBeanServer().registerMBean(mBean,
mBeanName);
}
catch (JMException e)
{
logger.info("JMX registration error: {}\nContinuing...",
e.getMessage());
}
catch (java.security.AccessControlException e)
{
logger.info("JMX registration error: {}\nContinuing...",
e.getMessage());
}
catch (Throwable e)
{
logger.info("平台初始化JMX异常", e);
}
| 构造器和说明 |
|---|
DynamicMBeanAbstract()
构造函数。
|
DynamicMBeanAbstract(java.lang.String name,
java.lang.String desc)
构造函数。
|
| 限定符和类型 | 方法和说明 |
|---|---|
javax.management.AttributeList |
getAttributes(java.lang.String[] attributes)
(non-Javadoc)
|
protected abstract javax.management.MBeanAttributeInfo[] |
getMBeanAttributeInfos()
获取MBean属性信息。
|
javax.management.MBeanInfo |
getMBeanInfo()
(non-Javadoc)
|
protected java.lang.String |
getMBeanName()
返回JMX管理对象路径名称。
|
protected abstract javax.management.MBeanNotificationInfo[] |
getMBeanNotificationInfos()
获取MBean通知信息。
|
protected abstract javax.management.MBeanOperationInfo[] |
getMBeanOperationInfos()
获取MBean操作信息。
|
void |
registerMBean()
注册当前的MBean。
|
void |
setAttribute(javax.management.Attribute attribute)
(non-Javadoc)
|
protected abstract void |
setAttribute(java.lang.String name,
java.lang.Object val)
设置属性值。
|
javax.management.AttributeList |
setAttributes(javax.management.AttributeList attributes)
(non-Javadoc)
|
void |
unregisterMBean()
注销当前名字的MBean。
|
public DynamicMBeanAbstract()
public DynamicMBeanAbstract(java.lang.String name,
java.lang.String desc)
name - 对象名称,如果名称中不包含冒号:为类路径下指定名称的对象。desc - 对象描述。protected abstract javax.management.MBeanOperationInfo[] getMBeanOperationInfos()
实现代码样例:
MBeanAttributeInfo[] attributes;
attributes = new MBeanAttributeInfo[2];
attributes[0] = new MBeanAttributeInfo("config",
"java.lang.String",
"配置文件路径",
true,
true,
false);
attributes[1] = new MBeanAttributeInfo("springConfig",
"java.lang.String",
"Spring配置文件路径",
true,
true,
false);
return attributes;
protected abstract javax.management.MBeanAttributeInfo[] getMBeanAttributeInfos()
实现代码样例:
MBeanOperationInfo[] operations;
MBeanParameterInfo[] params;
operations = new MBeanOperationInfo[2];
operations[0] = new MBeanOperationInfo("reloadConfiguration",
"重载配置",
null,
"boolean",
MBeanOperationInfo.INFO);
params = new MBeanParameterInfo[]
{ new MBeanParameterInfo("beanName",
"java.lang.String",
"获取指定名称的对象") };
operations[1] = new MBeanOperationInfo("getBean",
"获取对象",
params,
"object",
MBeanOperationInfo.INFO);
return operations;
protected abstract javax.management.MBeanNotificationInfo[] getMBeanNotificationInfos()
protected abstract void setAttribute(java.lang.String name,
java.lang.Object val)
name - val - public void setAttribute(javax.management.Attribute attribute)
throws javax.management.AttributeNotFoundException,
javax.management.InvalidAttributeValueException,
javax.management.MBeanException,
javax.management.ReflectionException
setAttribute 在接口中 javax.management.DynamicMBeanjavax.management.AttributeNotFoundExceptionjavax.management.InvalidAttributeValueExceptionjavax.management.MBeanExceptionjavax.management.ReflectionExceptionDynamicMBean.setAttribute(javax.management.Attribute)public javax.management.AttributeList getAttributes(java.lang.String[] attributes)
getAttributes 在接口中 javax.management.DynamicMBeanDynamicMBean.getAttributes(java.lang.String[])public javax.management.AttributeList setAttributes(javax.management.AttributeList attributes)
setAttributes 在接口中 javax.management.DynamicMBeanDynamicMBean.setAttributes(javax.management.AttributeList)public javax.management.MBeanInfo getMBeanInfo()
getMBeanInfo 在接口中 javax.management.DynamicMBeanDynamicMBean.getMBeanInfo()protected java.lang.String getMBeanName()
返回字符串格式如下:"<替换为打包路径>:type=<替换为目录名>,name=<替换为对象名>"; 或"<替换为打包路径>:type=<替换为目录名>,type2=<替换为二级目录名>,name=<替换为对象名>" 或 "<替换为打包路径>:name=<替换为对象名>"不修改时为默认值: 打包路径前两段 下以当前类名为对象名称。
当固定名称时可以如下实现:
protected String getMBeanName()
{
return "com.hynnet:type=MyDir,name=MyObject";
}
public void registerMBean()
public void unregisterMBean()
Copyright © 2001-2014 hynnet.com