ImageVerifierCode 换一换
你正在下载:

JMX&MX4J.doc

[预览]
格式:DOC , 页数:30 ,大小:474.50KB ,
资源ID:3533964      下载积分:20 文钱
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,省得不是一点点
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.wenke99.com/d-3533964.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: QQ登录   微博登录 

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(JMX&MX4J.doc)为本站会员(sk****8)主动上传,文客久久仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知文客久久(发送邮件至hr@wenke99.com或直接QQ联系客服),我们立即给予删除!

JMX&MX4J.doc

1、- 1 -JMX MBeanServerFactory.newMBeanServer();ManagementFactory.getPlatformMBeanServer();区别:createMBeanServer 所创建出的 MBeanServer 的引用内部保存(MBeanServer reference is internally kept) ,所以可以由 findMBeanServer 来获得该 MBeanServer 的引用。newMBeanServer 没有内部保存引用,若 MBeanServer 不再用了,GC 会回收掉。ObjectName构造方法:ObjectName(St

2、ring name): name 格式为“DomainName:key=value”.ObjectName(String domain,String key,String value)ObjectName(String domain,Hashtable table)注意:ObjectName 初始化时会抛出异常,需要进行捕获,或者在方法上抛出。Standard MBeanBrief Intro1. 需要有一个接口;2. 需要有一个实现该接口的类。注意:接口必须命名为实现类+MBean,如果接口名字不对,会报错,说没有按照 standard MBean convention 约定。- 6 -例子

3、public interface HelloMBeanpublic String getName();public void setName(String name);public void printHello();public void printHello(String whoName);实现类:package com.primeton.spl;public class Hello implements HelloMBeanprivate String name;public Hello()this.name = “This is default name from default co

4、nstructor .“;public Hello(String name)this.name = name + “: from constructor with a param“;public String getName()return name;public void setName(String name)this.name = name;public void printHello()System.out.println(“Hello World, “ + name);public void printHello(String whoName)System.out.println(“

5、Hello , “ + whoName);Comment Mike1: 实现类类名- 7 -JMX Agent 类:package com.primeton.spl;import javax.management.MBeanServer;import javax.management.MBeanServerFactory;import javax.management.ObjectName;import m.HtmlAdaptorServer;public class HelloAgentpublic static void main(String args) throws Exception

6、MBeanServer server = MBeanServerFactory.createMBeanServer();/ MBeanServer server = ManagementFactory.getPlatformMBeanServer();ObjectName helloName = new ObjectName(“Michael_Shi:name=HelloWorld“);server.registerMBean(new Hello(), helloName);ObjectName adapterName = new ObjectName(“HelloAgent:name=htm

7、ladapter“);HtmlAdaptorServer adapter = new HtmlAdaptorServer();adapter.setPort(9999);server.registerMBean(adapter, adapterName);adapter.start();System.out.println(“start.“);解析:HelloMBean是接口,且命名必须为 XXX + MBean,里面定义了各种业务方法。Hello类是接口的实现类,里面实现了业务方法。注意:MBean 的属性的读写性是在接口 HelloMBean中定义的,由 getter方法进行读,sette

8、r 方法进行写,可以根据具体属性的读写性进行删减。MBServer 对 MBean通过 register方法进行注册。HtmlAdaptorServer需要加入 jmxtools.jar。这里提供了用浏览器进行查看注册在 MBServer中的 MBean的方法。相当于浏览器是 client end。它也是一个 MBean,也需要在 MBServer中进行注册。Comment Mike2: 在 jmxtools.jar中- 8 -并且还需要调用 start方法。注意:当使用 htmpAdaptor时,如果需要设置 port,1.可以在 ObjectName中设置 ObjectName adapt

9、erName = new ObjectName(“HelloAgent:name=htmladapter,port=9999“);2.可以通过 adaptor.setPort(9999);设置。推荐后者。注意:可以对 htmladapter添加验证身份/ 添加验证功能AuthInfo login = new AuthInfo();login.setLogin(“admin“);login.setPassword(“admin“);adapter.addUserAuthenticationInfo(login);MBeanServer在注册 MBean后,可以通过 setAttribute对其属

10、性进行修改。可以应用于不能修改源代码的第三方 jar包。setAttribute(ObjectName name,Attribute attribute)运行后,打开浏览器,在地址栏输入 localhost: 9999 即可以看到注册的MBean.Dynamic MBeanBrief Intro继承 javax.management.DynamicMBean 的 Mbean就是 Dynamic Mbean注意:一个 MBean不能同时是 Dynamic和 Standard的,即不能同时继承两个接口(一个自己 MBean的接口,一个 DynamicMBean接口) 。继承该接口,就要实现下面各方

11、法:public Object getAttribute( String attribute )public void setAttribute( Attribute attribute )public AttributeList getAttributes( String attributes );public AttributeList setAttributes( AttributeList attributes );- 9 -public Object invoke( String actionName, Object params, String signature )public

12、MBeanInfo getMBeanInfo();通过 getAttribute 和 getAttributes 来获得属性,setAttribute 和 setAttributes来设置属性。Invoke 方法参数:String:要调用的方法名;Object:调用方法的参数值;String:方法的参数值类型。When Dynamic MBean?1. 当你不能改变代码却想要对其资源进行管理时(例如第三方 jar 包) ;2. 资源的受管接口经常变化时。Why Dynamic MBean?1. 更加简单地对现存代码进行 instrument;2. 可以对受管资源提供 description(i

13、s not avaiable for standard MBean)3. 你还可以在运行期间新创建一些受管资源(例如:新建方法、属性等) 。MBeanInfo:包含 MBean 元数据的容器。- 10 -MBeanInfo 类的实例能够通过调用 getClassName()和 getDescription()来获得MBean 的类名和描述。在 Dynamic MBean 中,最终要由将所有的其他 Info 创建成 MBeanInfo。MBeanFeatureInfo:是所有 MBean 元数据的超类,含有 name 和 description,所以其他的元数据类都有 name 和 descri

14、ption。MBeanParameterInfo:描述了构造函数和方法中的参数名、描述,还增加了参数的类型。这三个就足够定义方法的参数了。MBeanConstructorInfo:描述了 MBean 类的构造函数。可以通过 constructor 或者name、 description、MBeanParameterInfo 来进行构造(具体见 API) 。该类只有一个方法:getSignature(),返回 MBeanParameterInfo 。MBeanAttributeInfo:描述暴露出的属性信息。可以通过传入相关属性信息来构造,也可以通过传入 Method for getter &

15、setter 来进行构造(见 API) 。通过调用下列方法来获得信息:getType()获得属性类型;isReadable()是否可读,如果为 true,需要提供 getter 方法;isWritable()是否可写,如果为 true,需要提供 setter 方法;isIs()是否可以用 is 获得(boolean 类型) 。注意:在构造方法中,第一个参数为 name(The name of the attribute),如果你的属性是小写,例如 password,那么在这个构造方法中,你需要把其首字母大写,即为 Password。因为参数的读写时通过 getter 和 setter 方法进行访

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。