zoukankan      html  css  js  c++  java
  • jmx使用jmxmp协议连接器的实现 悟寰轩

    package jmx;
    
    import java.io.IOException;
    import java.net.MalformedURLException;
    
    import javax.management.*;
    import javax.management.remote.*;
    
    public class XuqkTestServerJMXMP {
     public static void main(String Args[]) {
      try {
       MBeanServer mbs = MBeanServerFactory.newMBeanServer();
       String domain = mbs.getDefaultDomain();
       echo("<<domain:" + domain);
       String className = "jmx.XuqkTest";
       String name = domain + ":" + "type=" + className + ",index=1";
       ObjectName objectName = ObjectName.getInstance(name);
       mbs.createMBean(className, objectName);
    
       String protocol = "jmxmp";
       String host = "127.0.0.1";
       int port = 1110;
    
       JMXServiceURL jmxURL = new JMXServiceURL(protocol, host, port);
       JMXConnectorServer connectorServer = JMXConnectorServerFactory
         .newJMXConnectorServer(jmxURL, null, mbs);
       connectorServer.start();
       echo("<<mbs is started");
       echo("please click any key to stop mbs!");
       waitForEnterPressed();
       connectorServer.stop();
      } catch (MalformedObjectNameException e) {
       e.printStackTrace();
      } catch (NullPointerException e) {
       e.printStackTrace();
      } catch (InstanceAlreadyExistsException e) {
       e.printStackTrace();
      } catch (MBeanRegistrationException e) {
       e.printStackTrace();
      } catch (NotCompliantMBeanException e) {
       e.printStackTrace();
      } catch (ReflectionException e) {
       e.printStackTrace();
      } catch (MBeanException e) {
       e.printStackTrace();
      } catch (MalformedURLException e) {
       e.printStackTrace();
      } catch (IOException e) {
       e.printStackTrace();
      }
     }
    
     private static void echo(String msg) {
      System.out.println(msg);
     }
    
     private static void waitForEnterPressed() {
      try {
       echo("/nPress <Enter> to continue...");
       System.in.read();
      } catch (IOException e) {
       e.printStackTrace();
      }
     }
    
    }

    代码不难,主要就是用“jmxmp”协议建一个连接器供客户端连接,在我本机调试的时候一直报错(java.net.MalformedURLException: Unsupported protocol: jmxmp); 不支持jmxmp协议,弄了好几天

    其原因是因为jmxmp在jmx体系里本身是作为一个可选的协议,jdk1.5里面没有带基于jmxmp协议的连接器,jmxmp是在JSR 160里面定义的,如果要让自己的jmx支持jmxmp的话,需要去sun网站下载jmxremote_optional.jar这个包。

    后来我去sun网站下了jdmk51_02-allplatforms.zip这个文件,在其中有一个sun-jdmk-runtime-jmx- 5.1-b34.2.zip,这里面有实现jmxmp协议的连接器的jar,解压之后把里面的jar文件全部拷贝在javaHome/lib/jre /lib/ext下之后,如我所愿,该看到的调试信息都看到了,感觉真好!!!!!

      原来就是少了jmxmp协议连接器实现的jar。

    http://blog.csdn.net/qingkangxu/article/details/1943197

  • 相关阅读:
    极速南瓜(北京)品牌管理顾问有限公司
    许涛芳_百度百科
    个性化品牌开始繁荣?为设计师和代工厂牵线的平台Maker's Row获得100万美元融资 | 36氪
    薛蟠_百度百科
    莫龙丹_百度百科
    尊履·尚品|手工鞋|固特异|定制鞋
    联系我们_你我想法_【有男度】UNANDU 100%进口 全球设计师品牌精汇 男装_男装搭配_时尚男装_品牌男装_男装搭配技巧_男装网站
    全球高级定制鞋完全指南
    百年定制老字号落户扬城 服装“私人定制”悄然兴起
    享受私人定制服装(下)
  • 原文地址:https://www.cnblogs.com/sunxucool/p/3120786.html
Copyright © 2011-2022 走看看