收藏 分销(赏)

MX4J学习文档.doc

上传人:xrp****65 文档编号:7683825 上传时间:2025-01-12 格式:DOC 页数:8 大小:73.50KB 下载积分:10 金币
下载 相关 举报
MX4J学习文档.doc_第1页
第1页 / 共8页
MX4J学习文档.doc_第2页
第2页 / 共8页


点击查看更多>>
资源描述
MX4J Made by Michael.Shi mailto:shipl@ MX4J 3 JMXServiceURL 3 JMXConnectorServer 3 例子: 3 AbstractDynamicMBean: 5 HttpAdaptor: 6 Constructor: 6 Attribute 7 XSLTProcessor 7 Brief Intro: 7 Constructor: 7 JMXAuthenticator 7 NamingService 8 部署 8 调用 8 更改端口 8 MX4J JMXServiceURL 格式:service:jmx: <protocolprotocol:"rmi", "iiop", "jmxmp" or "soap" >://[[[ <host>]: <port>]/ <path>] 它可以看做是JMXConnectorServer的地址,JMXConnector可以通过这个地址连接到JMXConnectorServer。 JMXConnectorServer 一旦JMXConnectorServer执行stop方法,则不能restart. MX4J下JMX配置(利用HttpAdaptor和XSLTProcessor) 这种配置功能上类似于HtmlAdaptor和JConnector,都是启动server,来进行MBean的注册。 1 creates MBeanServer 2 将MC4J HttpAdaptor 对象注册入MBean 设HttpAdaptor MBean的attributes--port,host 3 将MC4J XSLTProcessor,注册入MBean 设置一些attribue,也可以不设置 4 加入被管理MBean(一些测试的bean) 5 执行HttpAdaptor MBean的具体服务方法       // 执行HttpAdaptor MBean的addAuthorization(username, password)方法          server.invoke(serverName, "addAuthorization", new Object[]{"mx4j", "mx4j"}, new String[]{"java.lang.String", "java.lang.String"});       // 执行HttpAdaptor MBean(即serverName)的start()方               server.invoke(serverName, "start", null, null); 例子: package com.primeton.spl.mx4j; import javax.management.Attribute; import javax.management.MBeanServer; import javax.management.MBeanServerFactory; import javax.management.ObjectName; import com.primeton.spl.dynamic.HelloDynamic; import mx4j.tools.adaptor.http.HttpAdaptor; import mx4j.tools.adaptor.http.XSLTProcessor; public class HttpAdaptors { private String mbeanDomainName = "MX4J"; private int port = 8091; private String host = "localhost"; private String username = "admin"; private String password = "admin"; private String path = "."; private String pathInJar = null; public void start() throws Exception { // 开启MBeanServer MBeanServer mbServer = MBeanServerFactory.createMBeanServer(mbeanDomainName); // 将MX4J 中的httpadpator注册到MBeanServer中 ObjectName serverName = new ObjectName("Http:name=HttpAdaptor"); HttpAdaptor adaptor = new HttpAdaptor(); mbServer.registerMBean(adaptor, serverName); // 设置httpadpator 属性 mbServer.setAttribute(serverName, new Attribute("Port", port)); mbServer.setAttribute(serverName, new Attribute("Host", host)); // MX4J要求 设置XSLTProcessor, 注入MBean // 提供解析 XML功能 ObjectName processorName = new ObjectName("Http:name=XSLTProcessor"); XSLTProcessor xsltP = new XSLTProcessor(); mbServer.registerMBean(xsltP, processorName); // 设置XSLTProcessor属性 mbServer.setAttribute(processorName, new Attribute("File", path)); mbServer.setAttribute(processorName, new Attribute("UseCache", new Boolean("false"))); mbServer.setAttribute(processorName, new Attribute("PathInJar", pathInJar)); // 设置httpadaptor的Processor mbServer.setAttribute(serverName, new Attribute("ProcessorName", processorName)); // 添加business MBean // HelloDynamic() 是一个MBean, 这里只是为了测试,可以换成其他的MBean ObjectName bzMBeanObjName = new ObjectName("bzMBean:name=Hello"); mbServer.registerMBean(new HelloDynamic(), bzMBeanObjName); // 执行 httpadaptor中的具体服务方法 mbServer.invoke(serverName, "addAuthorization", new String[]{username, password}, new String[]{String.class.getName(), String.class.getName()}); // use basic authentication //server.setAttribute(serverName, new Attribute("AuthenticationMethod", "basic")); // 执行httpadaptor 的start 方法 mbServer.invoke(serverName, "start", null, null); } public static void main(String[] args) throws Exception { new HttpAdaptors().start(); } } AbstractDynamicMBean: 该工具类使得能够更加容易地写出Dynamic MBean。 通过extends这个类,开发人员就不用implement DynamicMBean接口。只需要提供MBean的metadata(override few methods)和实现(implement methods)即可。 经常被override的方法: · createMBeanAttributeInfo, if the MBeans has manageable attributes · createMBeanOperationInfo, if the MBeans has manageable operations · createMBeanNotificationInfo, if the MBeans has manageable notifications · createMBeanConstructorInfo, if the MBeans has manageable constructors · getMBeanDescription 通过override上述等方法,可以对属性、操作进行暴露。 HttpAdaptormx4j.tools.adaptor.http.HttpAdaptor : 该类设置basic adaptor 来监听HTTP请求(类似于HtmpAdaptor)。 Constructor: 有四种种构造方法: 其中带参数的,可以分别设置port(int),host(String); 利用无参构造方法可以在注册MBean后通过MBeanServer进行设置: HttpAdaptor httpAdaptor = new HttpAdaptor(); ObjectName serverName = new ObjectName(DOMAIN_NAME + ":name=HttpAdaptor"); mbserver.registerMBean(httpAdaptor, serverName); mbserver.setAttribute(serverName, new Attribute("Host", host)); addAuthorization(String username,String pwd) 添加username和password,进行授权。 start() 开启服务器。 注意:注册MBean后,都可以由MBean的invoke方法进行动态调用。 Attribute Port: 设置server监听端口,默认8080; Host:设置server监听主机名,默认localhost即你不能通过其他电脑进行访问。可以用0.0.0.0,这样对所有本地接口开放。 。 AuthenticationMethod:设置认证方法,合法的是:none,basic,digest参考security part 。 Processor:设置processor。 ProcessorName:设置已作为Processor注册MBean的ObjectName。 ProcessorNameString:同上,只是名字作为String 进行传递。 XSLTProcessormx4j.tools.adaptor.http Brief Intro: XSL(Extensible Stylesheet Language):可扩展样式表语言。用来解析处理XML文档。 包含两部分: * XSLT – 用于转换 XML 文档的语言 * XPath – 用于在 XML 文档中导航的语言 Constructor: 只有一个无参构造函数。 XSLTProcessor将xml文档穿过一个XSLT transformation,进行转换。它也是一个MBean,可以讲它进行register。 通过mbserver.setAttribute(processorName, new Attribute("File", root)); 可以设置它的属性”File”,它通过这个属性创建文件输入流。 JMXAuthenticator 当创建JMXConnectorServer时可以使用JMXAuthenticator来实现身份验证准入。但是只能判断是否准入,凡是认证的用户可以在JMXConnectorServer上进行任何操作。 NamingService 包裹rmiregistry的MBean。 当使用rmi connector时,需要在cmd下运行rmiregistry。使用NamingService便可以代替之。 部署 MBeanServer server = MBeanServerFactory.createMBeanServer(); ObjectName naming = new ObjectName("Naming:type=registry"); server.createMBean("mx4j.tools.naming.NamingService", naming, null); 调用 使用start开始,使用stop停止 Object proxy = MBeanServerInvocationHandler.newProxyInstance(server, naming, NamingServiceMBean.class, false); NamingServiceMBean mbean = (NamingServiceMBean)proxy; mbean.start(); ... mbean.stop(); 或者用MBeanServer来显示invoke server.invoke(naming, "start", new Object[0], new String[0]); ... server.invoke(naming, "stop", new Object[0], new String[0]); 更改端口 可以在run time时进行端口的更改。 当namignservice 的MBean 启动时,需要先停止,修改端口后再启动。
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 教育专区 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服