星期四, 一月 20, 2005

JBOSS JMX FAQ 1

1.Q:如何给我写的Servlet添加一个JMX的监控组件呢?
A: 在Servlet init() 方法中调用MBeanServer.registerMBean(...)
来注册你的servlet
Code Example:
List srvrlist = MBeanServerFactory.findMBeanServer(null);
MBeanServer server = (MBeanServer)srvrlist.iterator().next();

ObjectName name = new ObjectName("com.wxk:service=mybean");
Mybean emb = new Mybean();
server.registerMBean(emb, name);

2.Q:为什么我发布的sar总是扔出:Class does not expose a management interface :错误:
A:JBoss规则或JMX规范:一个Class的JMX Management Interfact必须是添加后缀MBean
比如你的Class为 x.y那么对应的JMX管理接口的class名字必须为x.yMBean

3.Q:如何得到当前系统的默认MBeanServer?
A:使用MBeanServerFactory.findMBeanServer(null).iterator().next();
要注意必须使用同一个VM/ClassLoader.