jmx使用jmxmp协议连接器的实现
2013-06-06 11:28
337 查看
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
相关文章推荐
- jmx使用jmxmp协议连接器的实现
- jmx使用jmxmp协议连接器的实现
- jmx使用jmxmp协议连接器的实现
- 使用网页版微信协议实现一个微信机器人
- 使用_ObjectiveCBridgeable协议实现Objective-C类与Swift结构体的无缝互转
- MQTT协议之使用Future模式订阅及发布(使用fusesource mqtt-client实现)
- PHP使用range协议实现输出文件断点续传代码实例
- 使用SMTP 和POP3 协议实现收发邮件(C/C++)
- 在使用JavaMail实现imap协议收取各种邮箱服务器的邮件的时候,碰到了几个比较郁闷的问题
- Android与Java 服务器使用Socket协议实现Json数据传输
- 使用lwip协议实现UDP通信
- 使用java模拟post协议实现图片上传
- MQTT协议之订阅及发布(使用paho-mqtt-client或mqttv3实现)
- Netty使用websocket协议实现汽车行驶轨迹追踪demo
- [译] 使用流动控制器(Flow Controller )实现 MVVM 协议模型
- 在 Android 的 IM 应用中使用 asmack 库实现用户头像的传输(基于VCard协议)
- 如何实现注册时必须同意使用协议
- 使用SmartQQ实现的智能回复(Web QQ协议)
- 使用ByteArray实现数据的传输,以及协议的分解.
- Java网络编程之(三): TCP协议使用NIO实现非阻塞Soket通信