//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();
}
}
}
分享到:
相关推荐
JMX实战 书中不仅有对于基础知识的介绍,还有对于JMX开发中重大的体系架构问题的深入探讨,总结了大量JMX开发中的设计模式,并讨论了框架、安全性与性能等等。书中提供了几个典型的例子,兼顾各种开发平台,这些...
jmx快速上手 jmx快速上手 jmx快速上手 jmx快速上手
为什么JMX那么受欢迎,JMX到底有那些优势只得人们去学习和理解,本文从JMX的基本架构、hellowold jmx以及spring对JMX的支持讲起,希望大家能通过本文对JMX有个基础的认识,并能通过本文为今后学习JMX打个基础
Fiddler导出jmx文件,解决Fiddler导出文件中 没有jmx文件选项,各个版本fiddler都适用
Description Resource Path Location Type Missing artifact com.sun.jmx:jmxri:jar:1.2.1 pom.xml /eshop-storm line 2 Maven Dependency Problem
jmx配置
JBoss JMX实现架构 JBoss JMX实现架构
JMX小例子以及介绍 JMX小例子以及介绍 JMX小例子以及介绍
catalina-jmx-remote.jar放到tomcat/lib目录下 如果是windows版本,编辑TOMCAT_HOME/bin/catalina.bat,在开头加入下面几行: set CATALINA_OPTS=%CATALINA_OPTS% -Djava.rmi.server.hostname=JMX_HOST set CATALINA...
Hbase和Hadoop JMX监控实战
JMX与JMS的概念
java实现Jmx实例,jmxdemo项目源码下载
JMX一步一步来,从最基本的应用开始入手,快速应用开发。
jmx的简单介绍和使用,包含一些简单的代码示例,看完基本能了解jmx并使用。
jmx和jmx在glassfish中的应用
有关JMX学习的一些文档,对初学JMX的朋友有帮助.
activeMQ开启jmx固定rmi端口,穿透防火墙,用了一天的时间,踩了无数的坑,拿出来共享.
jmx 实例 rmi mbean,采用rmi方式进行jmx的mbean管理,通过这个实例能够了解jmx的应用
JMX ajax,sampleJMX