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

JMX 的一个简单例子

    博客分类:
  • java
SUN 
阅读更多
废话不多说,上代码:

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());
	}
}

分享到:
评论

相关推荐

    最简单JMX例子

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

    JMX小例子以及介绍

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

    jmx例子一则

    在描述中提到的博客中,作者可能详细解释了如何创建一个简单的MBean,例如: ```java public class MyManagedBean implements MyManagedInterface { private int counter; public void incrementCounter() { ...

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

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

    jmx第一个学习例子

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

    Jmx实例demo下载

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

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

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

    JMX实例与应用模型下载

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

    JMX学习,开发文档

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

    JMX与Spring 结合

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

    jmxdemo.rar

    例如,一个简单的MBean可能会暴露内存使用情况、线程统计或数据库连接状态等信息。 客户端部分则是通过JMX API与服务端建立连接,查询MBean信息,执行管理操作。这通常涉及到查找并实例化适当的MBean服务器连接器,...

    JMX 在GlassFish中的应用

    **JMX(Java Management Extensions)**是一种由Sun Microsystems提出并由Java社区推动的标准,旨在为Java应用程序、系统和网络提供一个统一的管理和监控框架。自Java SE 5.0起,JMX成为Java平台的一部分,其设计...

    JMX实战

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

    jmx_examples.rar_Java 8_jmx_jmx examples_jmx main_jmx_examples

    Java Management Extensions(JMX)是Java平台上的一个标准技术,用于管理和监控应用程序、服务和设备。JMX允许开发者创建管理接口,以便对运行时的组件进行动态监控和管理。在这个"jmx_examples.rar"压缩包中,包含...

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

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

    网络管理之jmx开发实战

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

    jmx入门

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

    jmx.zip_jmx html

    在这个"jmx.zip_jmx html"文件中,包含的是一个JMX的简单实例,以HTML格式展示的JMX控制台。 首先,我们要理解JMX的核心概念。JMX由三个主要部分组成:MBeans(Managed Beans)、Servers和Clients。MBeans是JMX的...

    JMX.rar_jmx_osgi

    Java Management Extensions(JMX)是Java平台上的一个标准组件,用于构建和集成管理应用程序。它提供了一种统一的方式来管理和监控Java应用程序,设备和系统。JMX允许开发者暴露管理操作和属性,以便远程或本地工具...

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

    JMX(Java Management Extensions)是Java平台上的一个标准管理框架,用于监控和管理应用程序、服务、设备以及其他系统资源。这个框架允许开发人员创建可管理的组件,并通过标准接口暴露其管理功能。《JMX技术介绍》...

Global site tag (gtag.js) - Google Analytics