JMX入门之StandardMBean HelloWord

standard|word

这个简单的Mbean只有一个属性和一个方法,StardBeanDemoMain 为调用类,main方法中调用下面三个方法,代码中都有详细的注释: sbean.doRegistBean();         sbean.doManageBean();        sbean.regHtmlAdaptor();

运行后,可以看到控制台打印的信息,register StandMbean sucess..Attribute:state -init valueAttribute:state 2 -new stateMy service start.....

由于启动了HtmlAdaptor的服务,所以程序一直处于运行状态,(HtmlAdaptor是sun jmx实现自带的一个适配器)测试可以在浏览器中访问:http://localhost:8082 就可以在浏览器中管理mbean了,在List of MBean operations下面按startService 按钮,可以看到控制台打出的信息,说明startService方法被调用了。

/** * Mbean接口 * StandBeanMBean.java * @author zmxj */public interface StandBeanMBean {        public String getState() ;        public void setState(String s) ;        public void startService();}

/** * Mbean实现 * StandBean.java * @author zmxj */public class StandBean implements StandBeanMBean {

    private String state = "init value";   

    public String getState() {        return state;    }

    public void setState(String s) {        state = s;            }

    public void startService() {       System.out.println("My service start.....");            }

}

import javax.management.Attribute;import javax.management.AttributeNotFoundException;import javax.management.InstanceNotFoundException;import javax.management.InvalidAttributeValueException;import javax.management.MBeanException;import javax.management.MBeanServer;import javax.management.MBeanServerFactory;import javax.management.MalformedObjectNameException;import javax.management.ObjectName;import javax.management.ReflectionException;

import com.sun.jdmk.comm.HtmlAdaptorServer;

/** * Agent类 * StardBeanDemoMain.java * @author zmxj */public class StardBeanDemoMain {

    private MBeanServer mBserver = null;        ObjectName mbeanObjectName = null; String domain = null; String mbeanName = "StandBean";     public static void main(String[] args) {                StardBeanDemoMain sbean = new StardBeanDemoMain();                sbean.doRegistBean();        sbean.doManageBean();        sbean.regHtmlAdaptor();    }        /**     * 创建MBeanServer并注册一个Mbean     */    private void doRegistBean()    {        //创建MBeanServer        mBserver = MBeanServerFactory.createMBeanServer();        domain = mBserver.getDefaultDomain();

     try {         mbeanObjectName = new ObjectName(domain + ":type=" + mbeanName);                  /*         //这里可以直接创建并且同时注册一个mbean到MBeanServer.         server.createMBean(mbeanName,mbeanObjectName);         */                  StandBean bean = new StandBean();         mBserver.registerMBean(bean, mbeanObjectName);                  System.out.println("register StandMbean sucess..");     } catch(MalformedObjectNameException e) {         e.printStackTrace();         System.exit(1);     } catch(Exception e){         e.printStackTrace();         System.exit(1);     }         }

    /*     * 演示管理mbean,通过mbserver修改mbean的属性和执行mbean的方法     */    private void doManageBean()    {        try {            ObjectName mbeanObjectName = new ObjectName(domain + ":type=" + mbeanName);                                   System.out.println("Attribute:state -"+mBserver.getAttribute(mbeanObjectName,"State"));

            //修改属性State            Attribute stateAttribute = new Attribute("State","new state");            mBserver.setAttribute(mbeanObjectName, stateAttribute);                        //取得属性值            System.out.println("Attribute:state 2 -"+mBserver.getAttribute(mbeanObjectName,"State"));                        //调用方法startService            mBserver.invoke(mbeanObjectName,"startService",null,null);                    } catch (Exception e) {            e.printStackTrace();        }    }        /*     * 注册HtmlAdaptor,注册后可以通过http://localhost:8082执行mbean管理操作     */    private void regHtmlAdaptor()    {     HtmlAdaptorServer html = new HtmlAdaptorServer();     ObjectName html_name = null;     try {         html_name = new ObjectName("Adaptor:name=html,port=8082");         mBserver.registerMBean(html, html_name);     } catch(Exception e) {         System.out.println("\t!!! Could not create the HTML adaptor !!!");         e.printStackTrace();         return;     }     html.start();     }}

时间: 2024-09-29 16:16:31

JMX入门之StandardMBean HelloWord的相关文章

Android 游戏开发入门简单示例_Android

 在Android系统上开发游戏是Android开发学习者所向往的,有成就感也有乐趣,还能取得经济上的报酬.那怎样开发Android游戏呢?下面介绍一个简单的入门实例.        一.创建新工程        首先,我们在Eclipse中新建一个名为Movement的工程,并且选择合适的Android SDK,在这里,我们选用的API是比较低的1.5版本,这样可以让其适应性更强.接下来,我们新建两个类,一个是UpdateThread类,一个是SurfaceView类,它们在项目中分别是负责处

BAT资深算法工程师「Deep Learning」读书系列分享(一) | 分享总结

雷锋网 AI 科技评论按:「Deep Learning」这本书是机器学习领域的重磅书籍,三位作者分别是机器学习界名人.GAN的提出者.谷歌大脑研究科学家 Ian Goodfellow,神经网络领域创始三位创始人之一的蒙特利尔大学教授 Yoshua Bengio(也是 Ian Goodfellow的老师).同在蒙特利尔大学的神经网络与数据挖掘教授 Aaron Courville.只看作者阵容就知道这本书肯定能够从深度学习的基础知识和原理一直讲到最新的方法,而且在技术的应用方面也有许多具体介绍.这本

Swift初体验之HelloWord+苹果Swift编程语言入门教程【中文版】

AppDelegate.swift : <span style="font-size:24px;"><strong>// // AppDelegate.swift // SwiftHelloWord // // Created by jason on 14-6-5. // Copyright (c) 2014年 JasonApp. All rights reserved. // import UIKit @UIApplicationMain class AppD

jmx的简单学习

背景 前段时间在看btrace源码和jdk一些源码的时候,经常会看到一些jmx的相关内容.以前对jmx基本是一片空白区,花了点时间学习记录下.   过程 jmx总体架构图:  说明:  1.  Agent : javax.management.MBeanServer实现了Agent的功能,以标准的方式给出了管理系统访问 JMX 框架的接口 2. SubAgent: javax.management.MBeans实现了SubAgent的功能,以标准的方式给出了 JMX 框架访问资源的接口 MBea

初学者如何快速入门JSP实例分析

js|初学|快速入门 1) JSP(JavaServer Pages)简介:在当今世界,流行的Internet应用程序开发主要有:ASP,PHP,CGI,JSP--等多种方案,技术上各有优缺点,但是JSP以其简单易学,跨平台的特性,在众多程序中独树一帜,在短短几年中已经形成了一套完整的规范,并广泛的应用于电子商务等各个领域中.在国内JSP现在也得到了比较广泛的重视. 2) 如何才能快速掌握JSP:JSP实际上是JSP定义的一些标记和JAVA程序段,以及HTML文件的混合体.所以,如果要掌握JSP

扩展 Spring 的 JMX 支持(1)

Spring 框架将体系结构依赖性降至最低,并且将应用程序中得组成部分进行了具体化,但是应用程序仍然是需要管理的.幸运的是,Spring 1.2 包括高级的 JMX 集成支持,并且 JMX 为应用程序提供了一种实用的管理基础架构.在本文中,Claude Duguay 从 Spring JMX 更进一步,向您展示了如何为方法和属性透明地增加通知事件.最后得到的代码使您可以监视状态变化,同时不会搞乱 Java? 对象. 虽然 Spring 框架的 JMX 管理基础架构的默认配置已经很不错了,但是仍然

Lucene 3.6.2入门(1) 第一个程序:Hello Word

package com.jadyer.lucene; import java.io.File; import java.io.FileReader; import java.io.IOException; import org.apache.lucene.analysis.standard.StandardAnalyzer; import org.apache.lucene.document.Document; import org.apache.lucene.document.Field; i

NetBeans和JBoss结合使用入门指南

本文将展示如何结合使用NetBeans集成开发环境(IDE) 和JBoss应用服务器. Getting Started with JBoss 4.0的第四章描述了如何安装.编译.部署及运行一个示例J2EE应用程序.本教程将对如何使用NetBeans IDE来执行那些步骤提供说明. 本教程介绍以下主题: 入门 安装软件 安装示例代码 注册 JBoss 应用服务器 创建项目 浏览源代码 构建和部署示例应用程序 调试示例应用程序 进一步研究 项目文件 映射 Ant 命令 项目类型 扩展 IDE 注意:

Structs中基本配置入门

  1.为Structs应用配置Web.xml文件 第一步:配置ActionServlet   <servlet> <servlet-name>action</servlet-name> <servlet-class>org.appache. structs.ActionSer vlet</servlet-class></servlet><servlet-mapping> <servlet-name>actio