`

jmx简单例子

阅读更多

转:http://lveyo.iteye.com/blog/205665

JMX简单实例

关键字: jmx

一、概念

1.什么是JMX:JMX(Java Management Extensions,即Java管理扩展)是一个为应用程序、设备、系统等植入管理功能的框架。

2.JMX的特点:JMX可以跨越一系列异构操作系统平台、系统体系结构和网络传输协议,灵活的开发无缝集成的系统、网络和服务管理应用。JMX是一种应用编程接口,可扩充对象和方法的集合体,可以用于跨越一系列不同的异构操作系统平台、系统体系结构和网络传输协议,灵活的开发无缝集成的系统、网络和服务管理应用它提供了用户界面指导、Java类和开发集成系统、网络及网络管理应用的规范。

3.JMX的优点:JMX可以非常容易的使应用程序具有被管理的功能;提供具有高度伸缩性的架构;主要提供接口,允许有不同的实现

4.JMX的详细内容:http://www.itisedu.com/phrase/200604261751455.html(以上内容摘抄于此)

二、简单实例

1.建立一个需要被JMX管理的类Hello
Java代码 复制代码
  1. package bcndly.test.jmx;   
  2.   
  3. public class Hello implements HelloMBean {   
  4.        
  5.     private String name;   
  6.   
  7.     public String getName() {   
  8.         return name;   
  9.     }   
  10.   
  11.     public void printHello() {   
  12.         System.out.println("Hello, " + name);   
  13.     }   
  14.   
  15.     public void printHello(String theName) {   
  16.         System.out.println("Hello, " + theName);   
  17.     }   
  18.   
  19.     public void setName(String name) {   
  20.         this.name = name;   
  21.     }   
  22.   
  23. }  
package bcndly.test.jmx;

public class Hello implements HelloMBean {
	
	private String name;

	public String getName() {
		return name;
	}

	public void printHello() {
		System.out.println("Hello, " + name);
	}

	public void printHello(String theName) {
		System.out.println("Hello, " + theName);
	}

	public void setName(String name) {
		this.name = name;
	}

}


2.建立Hello类的MBean接口,接口名必须是要管理的类名+MBean
Java代码 复制代码
  1. package bcndly.test.jmx;   
  2.   
  3. public interface HelloMBean {   
  4.        
  5.     public String getName();   
  6.   
  7.     public void setName(String name);   
  8.   
  9.     public void printHello();   
  10.   
  11.     public void printHello(String theName);   
  12. }  
package bcndly.test.jmx;

public interface HelloMBean {
	
	public String getName();

	public void setName(String name);

	public void printHello();

	public void printHello(String theName);
}


3.创建一个Agent类
Java代码 复制代码
  1. package bcndly.test.jmx;   
  2.   
  3. import javax.management.MBeanServer;   
  4. import javax.management.MBeanServerFactory;   
  5. import javax.management.ObjectName;   
  6.   
  7. import com.sun.jdmk.comm.HtmlAdaptorServer;   
  8.   
  9. public class HelloAgent {   
  10.   
  11.     public static void main(String[] args) throws Exception {   
  12.         MBeanServer server = MBeanServerFactory.createMBeanServer();   
  13.         ObjectName helloName = new ObjectName("bcndyl:name=HelloWorld");   
  14.         server.registerMBean(new Hello(), helloName);   
  15.         ObjectName adapterName = new ObjectName("HelloAgent:name=htmladapter,port=8091");   
  16.         HtmlAdaptorServer adapter = new HtmlAdaptorServer();   
  17.         server.registerMBean(adapter, adapterName);   
  18.         adapter.start();   
  19.         System.out.println("start.....");   
  20.     }   
  21.   
  22. }  
package bcndly.test.jmx;

import javax.management.MBeanServer;
import javax.management.MBeanServerFactory;
import javax.management.ObjectName;

import com.sun.jdmk.comm.HtmlAdaptorServer;

public class HelloAgent {

	public static void main(String[] args) throws Exception {
		MBeanServer server = MBeanServerFactory.createMBeanServer();
		ObjectName helloName = new ObjectName("bcndyl:name=HelloWorld");
		server.registerMBean(new Hello(), helloName);
		ObjectName adapterName = new ObjectName("HelloAgent:name=htmladapter,port=8091");
		HtmlAdaptorServer adapter = new HtmlAdaptorServer();
		server.registerMBean(adapter, adapterName);
		adapter.start();
		System.out.println("start.....");
	}

}

说明:
  • HtmlAdaptorServer在jmxtools.jar包中,需要到SUN网站下载JMX 1.2.1 Reference Implementation
  • MBeanServer是一个包含所有注册MBean的仓库.它是JMX代理层的核心.JMX1.0规范提供一个接口叫 javax.management.MBeanServer. 所有管理的在MBean操作通过MBeanServer执行.使用MBeanServer实例,你能够管理所有MBean.每一个MBean具有一个唯一标志,叫ObjectName.
  • ObjectName (javax.management.ObjectName)是一个类,唯一标志一个在MBeanServer的MBean.这个对象名称用于管理应用程序来标志MBean以便操作能够在适当的MBean上被调用.一个对象名称包含两部分:域名称和没有经过排序的一个或者多个关键属性集,语法:[domain name]:property=value[,property=value]
  • AdaptorServer,这个类将决定MBean的管理界面,这里用最普通的Html型界面。AdaptorServer其实也是一个MBean
  • 运行HelloAgent,打开IE输入http://localhost:8091就可以看到注册的MBean,在控制台看printHello的输出结果

分享到:
评论

相关推荐

    jmx简单实例,附带jar包完整项目

    在这个“jmx简单实例”中,我们将会探讨JMX的基本概念,以及如何使用所提供的jar包来构建和运行一个简单的JMX示例。 1. **JMX基础** JMX由三部分组成:MBeans(Managed Beans)、Servers和Agents。MBeans代表管理...

    最简单JMX例子

    对于初学者,这个"最简单JMX例子"将展示如何创建一个简单的MBean,如何在Eclipse这样的集成开发环境中配置和运行,以及如何通过标准的JMX客户端工具进行交互。通过学习这个例子,你可以理解JMX的基本结构和用法,为...

    JMX小例子以及介绍

    本篇文章将深入探讨JMX的核心概念、功能及如何通过一个小例子来理解和使用JMX。 **1. JMX核心概念** - **MBean(Managed Beans)**: MBean是JMX中最基本的管理单元,它是Java对象,代表可管理的资源或服务。MBean...

    jmx例子一则

    这个例子将探讨如何在实际应用中使用JMX来实现远程监控和管理功能。 首先,JMX允许开发者定义名为MBeans(Managed Beans)的对象,这些对象代表了可管理的资源,如系统状态、配置参数或服务性能指标。MBeans可以是...

    Jmx实例demo下载

    6. **客户端示例**:项目可能还包含一个简单的客户端示例,展示了如何使用JMX API连接到MBean服务器,查询MBean信息,调用其操作,以及监控和改变MBean的属性。 通过分析`jmxdemo`项目的源代码,你可以学习如何创建...

    JMX实例与应用模型下载

    JMX应用实例与实现,通过一个简单的JavaWeb应用来验证JMX在应用中的植入管理和应用

    JMX一步一步来,快速学会开发JMX应用

    一个简单的JMX应用通常由以下几个部分组成: - **MBean**:代表被管理的对象,实现特定的MBean接口。例如,Hello类实现了HelloMBean接口,提供getName、setName方法以及printHello方法。 - **MBeanServer**:负责...

    jmx开发例子,包括与spring结合例子

    这个压缩包中的例子很可能是创建了一个简单的Spring应用,并且配置了JMX支持,展示如何将Spring的bean暴露为MBeans进行管理和监控。通过研究这些示例,新人可以更好地理解JMX和Spring如何协同工作,提升他们的Java...

    jmx入门例子源码 (含jmxtools.jar包)

    在这个入门例子中,我们将深入探讨JMX的核心概念以及如何通过提供的源码实现一个简单的JMX应用。 首先,`HelloAgent.java`通常是实现JMX代理的类,这个代理负责注册MBeans(Managed Beans),这是JMX中的核心组件。...

    jmx_examples.rar_Java 8_jmx_jmx examples_jmx main_jmx_examples

    在这个"jmx_examples.rar"压缩包中,包含了多个JMX的简单示例,这将帮助我们了解如何在Java 8中使用JMX。 1. **JMX基础知识**: - JMX的核心概念包括MBean(Managed Beans)、MBean Server和MBean操作。MBean是...

    JMX学习,开发文档

    一个简单的JMX示例是创建一个名为`Hello`的类,该类实现了`HelloMBean`接口。`HelloMBean`定义了`getName()`和`setName()`方法,以及`printHello()`方法。`Hello`类中的这些方法允许外部管理工具获取和设置名称,...

    JMX与Spring 结合

    1. **JMX与Spring 结合实例**:在Spring应用中,可以通过配置或者编程方式来注册MBeans(Managed Beans),这些MBeans代表了应用中的特定组件或服务。Spring 提供了`PlatformMBeanServer`的自动配置,可以方便地将...

    JMX 在GlassFish中的应用

    总之,JMX与AMX的结合为Java开发者提供了一套强大而灵活的工具集,使得在复杂的企业级应用中实施管理和监控策略变得既简单又高效。无论是对于应用的日常运维还是故障排查,JMX和AMX都扮演着不可或缺的角色。

    jmxdemo.rar

    这通常涉及到查找并实例化适当的MBean服务器连接器,如JMXMP(JMX Message Protocol),RMI-JRMPI(Remote Method Invocation with Java Remote Management Interface)等,然后使用连接器连接到服务端。 VisualVM...

    jmx入门

    让我们通过一个简单的例子来了解JMX的工作流程: 1. 首先,定义一个MBean接口,比如`HelloWorldMBean`,包含一个返回字符串的属性`greeting`和一个输出问候的`sayHello`操作。 ```java public interface ...

    jmx第一个学习例子

    标题和描述均提到了“jmx第一个学习例子”,这标志着文章旨在引导读者通过一个实践性的示例理解Java Management Extensions(JMX)的基础概念和技术。JMX作为一项由Sun Microsystems(现Oracle)提出的技术,用于...

    网络管理之jmx开发实战

    下面给出一个简单的Mlet配置文件示例: ```xml ``` #### 创建MBeanServer实例 创建MBeanServer的代码如下所示: ```java MBeanServer lServer = null; lServer = MBeanServerFactory.createMBeanServer(); //...

    《jmx技术介绍》配套源代码

    这些例子可以帮助读者快速上手,理解如何创建、注册MBeans,如何通过MBean Server进行操作,以及如何设置和使用JMX连接器。通过实践,学习者可以更深入地掌握JMX的精髓。 总结来说,JMX是Java平台的重要管理工具,...

    JMX实战

    **概述**:本章节通过一个简单的“Hello World”案例介绍如何使用JMX进行基本的应用管理。 **详细解释**: - **创建MBean实例**:首先,需要定义一个实现`javax.management.MBean`接口的类,该类通常包含一系列...

    java jmx操作示例源码

    一个MBean可以是简单的POJO(Plain Old Java Object),提供了暴露给管理系统的方法。MBean接口通常定义了管理操作和属性,而MBean的实现则提供了具体的功能。 2. **MBean服务器**:MBean服务器是JMX架构的一部分,...

Global site tag (gtag.js) - Google Analytics