JMX simple example

//mbean interface
public interface HelloWorldMBean
{
public void setGreeting( String greeting );
public String getGreeting();
public void printGreeting();
}


//mbean implementation
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;
}
public void setGreeting( String greeting )
{
this.greeting = greeting;
Notification notification = new Notification(
"helloWorld.fanrey", this, -1,
System.currentTimeMillis(), greeting );
sendNotification( notification );
}
public String getGreeting()
{
return greeting;
}
public void printGreeting()
{
System.out.println( greeting );
}
}


//Agent implementation
import javax.management.*;
import javax.management.remote.JMXConnectorServer;
import javax.management.remote.JMXConnectorServerFactory;
import javax.management.remote.JMXServiceURL;
import com.sun.jdmk.comm.*;

public class HelloAgent
{
private MBeanServer server = null;
public HelloAgent()
{
System.out.println("\n\tCREATE the MBeanServer.");
server = MBeanServerFactory.createMBeanServer("JMXAgent");
startHTMLAdapter();
startRMIConnector();
// HelloWorld hw = new HelloWorld();
// ObjectName helloWorldName;
// try {
// helloWorldName = new ObjectName( "JMXAgent:name=helloWorld1" );
// server.registerMBean( hw, helloWorldName );
// } catch (Exception e) {
// // TODO Auto-generated catch block
// e.printStackTrace();
// }
}

protected void startHTMLAdapter()
{
HtmlAdaptorServer adapter = new HtmlAdaptorServer();
ObjectName adapterName = null;
try
{
adapter.setPort( 9092 );
//create the HTML adapter
adapterName = new ObjectName(
"JMXAgent:name=html,port=9092" );
server.registerMBean( adapter, adapterName );
adapter.start();
}
catch(Exception e)
{
e.printStackTrace();
System.out.println("Error Starting HTML Adapter for Agent");
}
}

protected void startRMIConnector()
{
try {
JMXServiceURL url = new JMXServiceURL("jmxmp", null, 2099);
JMXConnectorServer connector = JMXConnectorServerFactory.newJMXConnectorServer(url, null, server);
ObjectName connectorName = new ObjectName("JMXAgent:name=RMIConnector");
server.registerMBean(connector, connectorName);
connector.start();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}


}

public static void main( String args[] )
{
System.out.println( "HelloAgent is running" );
HelloAgent agent = new HelloAgent();
System.out.println("\nAgent is Ready for Service...\n");
}
}


import java.net.MalformedURLException;
import javax.management.*;
import javax.management.remote.JMXConnector;
import javax.management.remote.JMXConnectorFactory;
import javax.management.remote.JMXServiceURL;


// test RMI client
public class Tester {

public static void main(String[] args) throws MalformedURLException,
InstantiationException, IllegalAccessException,
ClassNotFoundException {
JMXServiceURL url = new JMXServiceURL("jmxmp", null, 2099);

try {
JMXConnector jmxc = JMXConnectorFactory.connect(url, null);
ObjectName hwName;
hwName = new ObjectName("JMXAgent:name=helloWorld1");
jmxc.getMBeanServerConnection().createMBean("HelloWorld", hwName);
jmxc.getMBeanServerConnection().invoke(hwName, "printGreeting", null, null);
jmxc.close();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

}

}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值