- 浏览: 236406 次
- 性别:
- 来自: 北京
最新评论
-
Xgeeeeek:
讲的很细致,多谢~
JAVA RMI 实例 -
zontim:
...
JAVA RMI 实例 -
czl026:
简单明了,谢谢
[JMX一步步来] 1、JMX的Hello World -
manxisuo:
jtianguo 写道服务端和客户端在同一个包下,这句代码He ...
JAVA RMI 实例 -
manxisuo:
非常好,多谢!!
JAVA RMI 实例
前面用Html、jconsole等方法连接上了MBeanServer,并能够通过这些界面来操纵MBean。但有时我们需要不借助这些客户端,而是在自己的程序来操纵这些MBean,这就要求我们知道如何在代码里连接MBean。
基于上一篇为jconsole而修改的例子,给出一个示例的客户端程序,基本的操作都有了:
java 代码
- import java.util.Iterator;
- import java.util.Set;
- import javax.management.Attribute;
- import javax.management.MBeanInfo;
- import javax.management.MBeanServerConnection;
- import javax.management.MBeanServerInvocationHandler;
- import javax.management.ObjectInstance;
- import javax.management.ObjectName;
- import javax.management.remote.JMXConnector;
- import javax.management.remote.JMXConnectorFactory;
- import javax.management.remote.JMXServiceURL;
- public class Client {
- public static void main(String[] args) throws Exception {
- JMXServiceURL url = new JMXServiceURL("service:jmx:rmi:///jndi/rmi://localhost:9999/server");
- JMXConnector jmxc = JMXConnectorFactory.connect(url, null);
- MBeanServerConnection mbsc = jmxc.getMBeanServerConnection();
- ObjectName mbeanName = new ObjectName("chengang:name=HelloWorld");
- // 把所有Domain都打印出来
- System.out.println("Domains:---------------");
- String domains[] = mbsc.getDomains();
- for (int i = 0; i < domains.length; i++) {
- System.out.println("\tDomain[" + i + "] = " + domains[i]);
- }
- // MBean的总数
- System.out.println("MBean count = " + mbsc.getMBeanCount());
- // 对name属性的操作(属性名的第一个字母要大写)
- mbsc.setAttribute(mbeanName, new Attribute("Name", "PANDA"));// 设值
- System.out.println("Name = " + mbsc.getAttribute(mbeanName, "Name"));// 取值
- // 得到proxy代理后直接调用的方式
- HelloMBean proxy = (HelloMBean) MBeanServerInvocationHandler.newProxyInstance(mbsc, mbeanName, HelloMBean.class, false);
- proxy.printHello();
- proxy.printHello("Raymend");
- // 远程调用的方式
- mbsc.invoke(mbeanName, "printHello", null, null);
- mbsc.invoke(mbeanName, "printHello", new Object[] { "熊猫烧香" }, new String[] { String.class.getName() });
- // 得mbean的信息
- MBeanInfo info = mbsc.getMBeanInfo(mbeanName);
- System.out.println("Hello Class: " + info.getClassName());
- System.out.println("Hello Attriber:" + info.getAttributes()[0].getName());
- System.out.println("Hello Operation:" + info.getOperations()[0].getName());
- // 得到所有的MBean的ObjectName
- System.out.println("all ObjectName:---------------");
- Set set = mbsc.queryMBeans(null, null);
- for (Iterator it = set.iterator(); it.hasNext();) {
- ObjectInstance oi = (ObjectInstance) it.next();
- System.out.println("\t" + oi.getObjectName());
- }
- // 注销
- // mbsc.unregisterMBean(mbeanName);
- // 关闭MBeanServer连接
- jmxc.close();
- }
- }
运行后的效果如下:
Domains:---------------
Domain[0] = HelloAgent
Domain[1] = JMImplementation
Domain[2] = chengang
MBean count = 3
Name = Chen.Gang
Hello Class: mbean.connector.Hello
Hello Attriber:Name
Hello Operation:printHello
all ObjectName:---------------
chengang:name=HelloWorld
JMImplementation:type=MBeanServerDelegate
HelloAgent:name=htmladapter,port=8082
Domain[0] = HelloAgent
Domain[1] = JMImplementation
Domain[2] = chengang
MBean count = 3
Name = Chen.Gang
Hello Class: mbean.connector.Hello
Hello Attriber:Name
Hello Operation:printHello
all ObjectName:---------------
chengang:name=HelloWorld
JMImplementation:type=MBeanServerDelegate
HelloAgent:name=htmladapter,port=8082
它有两个Console输出,这里是另一个
Hello World, PANDA
Hello , 熊猫
Hello World, PANDA
Hello World, PANDA
Hello , 熊猫烧香
发表评论
-
Lucene全文检索样例(解决大文本建索引)
2008-01-31 10:05 6476建索引:package com.pccw; i ... -
txt读取字符串(为实习生作的例子)
2008-01-29 18:27 1928try { FileInputStream fi = n ... -
关于Lucene索引合并解决方法
2008-01-28 10:21 9278由于Clustor的问题造成无法对索引进行同步,脑子中马上浮现 ... -
Spring 2.0 AOP 与事务配置
2007-11-20 16:13 2760Spring 2.0 AOP 与事务配置 ********* ... -
关于Soeckt 流操作的数据转换工具方法
2007-11-02 10:50 2178java 代码 package com ... -
Java socket开发实例入门
2007-08-21 16:08 12191socket用中文意思就是我 ... -
不使用webwork标签直接用Jsp取得Action中的值
2007-05-22 14:23 3057今天突然一个同事问我webwork如果不用标签只用JSP ... -
23种模式趣味解释
2007-05-22 10:36 1942创建型模式 1、FACTORY ... -
关于领域逻辑的三个主要模式
2007-05-13 22:36 2674事务脚本 事务脚本比较好理解,简单来说,就是将大多是事务,以过 ... -
又谈领域模型
2007-04-29 09:58 2222昨天,突然和阿敏谈起领域模型,发现自己的理解还是 ... -
简单Socket编程,来理解Socket
2007-02-27 09:34 2212Server端: java 代码 p ... -
[JMX一步步来] 9、基于JBoss来写MBean
2007-02-02 13:31 13817前面都是用JDK自带的JMX ... -
[JMX一步步来] 7、用JDK5.0的JConsole来连接MBean
2007-02-02 13:09 8612前面所有看效果都是通过Html网页来看的。JDK5.0自带了一 ... -
[JMX一步步来] 6、模型Bean:Model Bean
2007-02-02 13:06 5723在上一节是用apache的commons-modeler来开发 ... -
[JMX一步步来] 5、用Apache的commons-modeler来辅助开发JMX
2007-02-02 12:59 6960一、前言 每一个MBean都要有一个接口,比如前面的H ... -
[JMX一步步来] 4、动态MBean:DynamicMBean
2007-02-02 12:48 6479一、前言 动态MBean是在运行期才定义它的属性和方法 ... -
[JMX一步步来] 3、Notification的使用
2007-02-02 12:36 6193一、简介 Mbean之间的通信是必不可少的, ... -
[JMX一步步来] 2、JMX简介
2007-02-02 11:25 8772一、JMX简介 JMX是一 ... -
[JMX一步步来] 1、JMX的Hello World
2007-02-02 11:23 10109一、JMX简介 什么是JMX?在一篇网文中是这样说的: ... -
JAVA RMI 实例
2007-02-02 10:51 39285JAVA RMI 快速入门实例 本实例为参考多篇文章写就而成 ...
相关推荐
JMX一步步来JMX一步步来JMX一步步来JMX一步步来
使用JMX接口来编写PMI应用程序,经验证,确实可行。
jmx快速上手 jmx快速上手 jmx快速上手 jmx快速上手
jmx 实例 rmi mbean,采用rmi方式进行jmx的mbean管理,通过这个实例能够了解jmx的应用
JMX 1.2.1 Reference Implementation(重点) Include com.sun.jdmk.comm.HtmlAdaptorServer class http://www.sun.com/software/jdmk/ Downloads, sun-jdmk-runtime-5.1-b34.2.zip/SUNWjdmk/5.1/lib/jdmkrt.jar
Java分布式应用学习笔记09JMX-MBean的介绍
NULL 博文链接:https://jasonhan-sh-hotmail-com.iteye.com/blog/1171904
JMX 连接工具 Eclipse 插件, 可实现 JMX 服务端的连接
JMX是指Java管理扩展,通过jmx可以监控java应用服务器的各项性能指标,jvm的性能指标等
JMX到Prometheus导出器:一个收集器,该收集器可以可配置地抓取和公开JMX目标的mBean。 该导出程序旨在作为Java代理运行,公开HTTP服务器并提供本地JVM的度量。 它也可以作为独立的HTTP服务器运行,并刮擦远程JMX...
tomcat开启远程jmx连接方式包括tomcat5 6 7 windows版本开启远程jmx连接监控
JMX一步一步来,从最基本的应用开始入手,快速应用开发。
JMX以RMI方式连接的场景示例,从“服务器A远程获取服务器B的历史IP访问记录”这一场景出发,将JMX框架的各层简单的串了一遍。其中包括了MBean、Agent、Client每个层的详细代码和说明
现在,与J2EE兼容的应用服务器需要支持这个标准,因为其中一些服务器使用JMXMBean作为基础架构。设计模式自从开始引入以来就一直很受欢迎,现在,我们还可以把这些设计理念用于应用程序的易管理性设计中。为了使应用...
JMX实战 书中不仅有对于基础知识的介绍,还有对于JMX开发中重大的体系架构问题的深入探讨,总结了大量JMX开发中的设计模式,并讨论了框架、安全性与性能等等。书中提供了几个典型的例子,兼顾各种开发平台,这些...
server想知道一台主机上的特定的JMX值时,它向Zabbix-Java-gateway询问,而Zabbix-Javagateway使用“JMXmanagementAPI”去查询特定的应用程序,而前提是应用程序这端在开启时需要“-Dcom.sun.management.jmxremote”...
NULL 博文链接:https://90haofang-163-com.iteye.com/blog/1901416
为什么JMX那么受欢迎,JMX到底有那些优势只得人们去学习和理解,本文从JMX的基本架构、hellowold jmx以及spring对JMX的支持讲起,希望大家能通过本文对JMX有个基础的认识,并能通过本文为今后学习JMX打个基础
本文档主要介绍了jmx连接T远程监控tomcat的详细配置,文档包含了一些配置的详细图片和需要注意的内容
配置文件是一个 JSON 结构,它定义了 JMX 连接、要收集的 MBean 属性以及边界度量定义。 它需要指定边界 api 字符串 email:api-key。 需要边界高级帐户以及 JMX 的工作知识和边界指标 API 的理解: 使用说明 编辑 ...