JMX 的一个简单例子

废话不多说,上代码:

HelloWorldMBean接口

package com.acxiom.bilyao;

public interface HelloWorldMBean {

public void setGreeting(String greeting);

public String getGreeting();

public void sayHello();

}


HelloWorld

package com.acxiom.bilyao;

import javax.management.Notification;
import javax.management.NotificationBroadcasterSupport;

public class HelloWorld extends NotificationBroadcasterSupport
implements HelloWorldMBean {

private String greeting = null;

public HelloWorld() {
this.greeting = "Hello World! I am a Standard MBean";
}

public HelloWorld(String greeting) {
this.greeting = greeting;
}

@Override
public void setGreeting(String greeting) {
this.greeting = greeting;

Notification notification = new Notification(
"com.acxiom.bilyao.helloWorld.test", this, -1,
System.currentTimeMillis(), greeting);
sendNotification(notification);
}

@Override
public String getGreeting() {
return greeting;
}

@Override
public void sayHello() {
System.out.println(greeting);
}

}


HelloAgent

package com.acxiom.bilyao;

import java.lang.management.ManagementFactory;

import javax.management.MBeanServer;
import javax.management.Notification;
import javax.management.NotificationListener;
import javax.management.ObjectName;

import com.sun.jdmk.comm.HtmlAdaptorServer;

public class HelloAgent implements NotificationListener{

private MBeanServer mbs = null;

public HelloAgent() {
mbs = ManagementFactory.getPlatformMBeanServer();
//mbs = MBeanServerFactory.createMBeanServer("HelloAgent");

HtmlAdaptorServer adapter = new HtmlAdaptorServer();

HelloWorld hw = new HelloWorld();
ObjectName helloName = null;
ObjectName adapterName = null;

try {
helloName = new ObjectName("HelloAgent:name=helloworld");
adapterName = new ObjectName("HelloAgent:name=htmladapter,port=8000");

adapter.setPort(8000);
mbs.registerMBean(adapter, adapterName);
adapter.start();

mbs.registerMBean(hw,helloName);

hw.addNotificationListener( this, null, null );
} catch(Exception e) {
e.printStackTrace();
}
}


private static void waitForEnterPressed() {
try {
System.out.println("Press <Enter> to continue...");
System.in.read();
} catch (Exception e) {
e.printStackTrace();
}
}

public static void main(String[] args) {
HelloAgent ha = new HelloAgent();
System.out.println("Hello Agent is running...");
HelloAgent.waitForEnterPressed();
}

@Override
public void handleNotification(Notification notif, Object handback) {
System.out.println( "Receiving notification..." );
System.out.println( notif.getType() );
System.out.println( notif.getMessage());
}
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值