`
fanrey
  • 浏览: 252262 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

JMX simple example

    博客分类:
  • JMX
 
阅读更多
//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();
}
       
    }  
 
}
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics