JMX服务端和客户端的代码
来源:互联网 发布:java文件执行过程 编辑:程序博客网 时间:2024/05/18 21:43
JMX服务端和客户端的代码
服务端代码如下
以下是客户端代码:
以下是HelloWorldMBean
以下是HelloWorld.java类:
- package com.rmi;
- import java.rmi.registry.LocateRegistry;
- import java.util.HashMap;
- import java.util.Map;
- import javax.management.MBeanServer;
- import javax.management.MBeanServerFactory;
- import javax.management.ObjectName;
- import javax.management.remote.JMXConnectorServer;
- import javax.management.remote.JMXConnectorServerFactory;
- import javax.management.remote.JMXServiceURL;
- public class Server {
- /**
- * @param args
- * @throws Exception
- */
- public static void main(String[] args) throws Exception {
- LocateRegistry.createRegistry(1234);//必须要这句,参数为端口号
- ObjectName helloName = new ObjectName("QianYu:type=oamp,name=hello");
- HelloWorld hello = new HelloWorld();
- MBeanServer server = MBeanServerFactory.createMBeanServer();
- // provide a valid username and password (e.g., via program arguments)
- String user = "monitorRole";
- String pw = "password";
- // place the username and password in a string array of credentials that
- // can be used when making the connection to the remote JMX agent
- String[] credentials = new String[] { user, pw };
- // the string array of credentials is placed in a map keyed against the
- // well-defined credentials identifier string
- Map<String, String[]> props = new HashMap<String, String[]>();
- props.put("jmx.remote.credentials", credentials);
- // supply the map of credentials to the connect call
- JMXServiceURL address =
- new JMXServiceURL("service:jmx:rmi:///jndi/rmi://localhost:1234/jmxrmi");
- JMXConnectorServer cserver =
- JMXConnectorServerFactory.newJMXConnectorServer(address, props, server);
- cserver.start();
- server.registerMBean(hello, helloName);
- }
- }
package com.rmi;import java.rmi.registry.LocateRegistry;import java.util.HashMap;import java.util.Map;import javax.management.MBeanServer;import javax.management.MBeanServerFactory;import javax.management.ObjectName;import javax.management.remote.JMXConnectorServer;import javax.management.remote.JMXConnectorServerFactory;import javax.management.remote.JMXServiceURL;public class Server {/** * @param args * @throws Exception */public static void main(String[] args) throws Exception {LocateRegistry.createRegistry(1234);//必须要这句,参数为端口号ObjectName helloName = new ObjectName("QianYu:type=oamp,name=hello"); HelloWorld hello = new HelloWorld(); MBeanServer server = MBeanServerFactory.createMBeanServer();// provide a valid username and password (e.g., via program arguments) String user = "monitorRole"; String pw = "password"; // place the username and password in a string array of credentials that // can be used when making the connection to the remote JMX agent String[] credentials = new String[] { user, pw }; // the string array of credentials is placed in a map keyed against the // well-defined credentials identifier string Map<String, String[]> props = new HashMap<String, String[]>(); props.put("jmx.remote.credentials", credentials); // supply the map of credentials to the connect call JMXServiceURL address = new JMXServiceURL("service:jmx:rmi:///jndi/rmi://localhost:1234/jmxrmi"); JMXConnectorServer cserver = JMXConnectorServerFactory.newJMXConnectorServer(address, props, server); cserver.start(); server.registerMBean(hello, helloName);}}
以下是客户端代码:
- package com.rmi;
- import java.util.HashMap;
- import java.util.Hashtable;
- import java.util.Map;
- import javax.management.JMX;
- import javax.management.MBeanServerConnection;
- 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 {
- /**
- * @param args
- * @throws Exception
- */
- public static void main(String[] args) throws Exception {
- // provide a valid username and password (e.g., via program arguments)
- String user = "monitorRole";
- String pw = "password";
- // place the username and password in a string array of credentials that
- // can be used when making the connection to the remote JMX agent
- String[] credentials = new String[] { user, pw };
- // the string array of credentials is placed in a map keyed against the
- // well-defined credentials identifier string
- Map<String, String[]> props = new HashMap<String, String[]>();
- props.put("jmx.remote.credentials", credentials);
- // supply the map of credentials to the connect call
- JMXServiceURL address =
- new JMXServiceURL("service:jmx:rmi:///jndi/rmi://localhost:1234/jmxrmi");
- JMXConnector connector = JMXConnectorFactory.connect(address, props);
- // it is a trivial matter to get a reference for the MBean server
- // connection to the remote agent
- MBeanServerConnection mbsc = connector.getMBeanServerConnection();
- connector.connect();
- ObjectName objectName=new ObjectName("hello:name=hello");
- if(!mbsc.isRegistered(objectName)){
- mbsc.createMBean("com.rmi.HelloWorld", objectName,null,null);
- }
- System.out.println("\nMBean count = " + mbsc.getMBeanCount());
- for (ObjectInstance object : mbsc.queryMBeans(null, null)) {//服务器上的所有MBean
- System.out.println("object.getObjectName="+object.getObjectName());
- }
- //hello对象属于远程的对象,调用sayHello方法,则是调用服务器端的sayHello方法
- final HelloWorldMBean hello = JMX.newMBeanProxy(mbsc, objectName,
- HelloWorldMBean.class);
- // hello.setName("Peter");
- hello.sayHello();
- // ObjectName unObjectName=new ObjectName("hello:name=hello");
- // Hashtable map=new Hashtable();
- // map.put("name", "hello");
- //unregister MBean
- // ObjectName unObjectName=new ObjectName("hello",map);
- // ObjectName unObjectName=ObjectName.getInstance("hello:name=hell*");
- // for (ObjectInstance object : mbsc.queryMBeans(unObjectName, null)) {//这里可根据查询结果进行注销MBean
- // mbsc.unregisterMBean(object.getObjectName());
- // }
- System.out.println("\nMBean count = " + mbsc.getMBeanCount());
- System.out.println("end");
- }
- }
package com.rmi;import java.util.HashMap;import java.util.Hashtable;import java.util.Map;import javax.management.JMX;import javax.management.MBeanServerConnection;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 {/** * @param args * @throws Exception */public static void main(String[] args) throws Exception {// provide a valid username and password (e.g., via program arguments) String user = "monitorRole"; String pw = "password"; // place the username and password in a string array of credentials that // can be used when making the connection to the remote JMX agent String[] credentials = new String[] { user, pw }; // the string array of credentials is placed in a map keyed against the // well-defined credentials identifier string Map<String, String[]> props = new HashMap<String, String[]>(); props.put("jmx.remote.credentials", credentials); // supply the map of credentials to the connect call JMXServiceURL address = new JMXServiceURL("service:jmx:rmi:///jndi/rmi://localhost:1234/jmxrmi"); JMXConnector connector = JMXConnectorFactory.connect(address, props); // it is a trivial matter to get a reference for the MBean server // connection to the remote agent MBeanServerConnection mbsc = connector.getMBeanServerConnection(); connector.connect(); ObjectName objectName=new ObjectName("hello:name=hello"); if(!mbsc.isRegistered(objectName)){mbsc.createMBean("com.rmi.HelloWorld", objectName,null,null);} System.out.println("\nMBean count = " + mbsc.getMBeanCount()); for (ObjectInstance object : mbsc.queryMBeans(null, null)) {//服务器上的所有MBean System.out.println("object.getObjectName="+object.getObjectName()); } //hello对象属于远程的对象,调用sayHello方法,则是调用服务器端的sayHello方法 final HelloWorldMBean hello = JMX.newMBeanProxy(mbsc, objectName, HelloWorldMBean.class);// hello.setName("Peter"); hello.sayHello();// ObjectName unObjectName=new ObjectName("hello:name=hello");// Hashtable map=new Hashtable();// map.put("name", "hello"); //unregister MBean// ObjectName unObjectName=new ObjectName("hello",map);// ObjectName unObjectName=ObjectName.getInstance("hello:name=hell*");// for (ObjectInstance object : mbsc.queryMBeans(unObjectName, null)) {//这里可根据查询结果进行注销MBean// mbsc.unregisterMBean(object.getObjectName());// } System.out.println("\nMBean count = " + mbsc.getMBeanCount()); System.out.println("end");}}
以下是HelloWorldMBean
- package com.rmi;
- import java.io.Serializable;
- public interface HelloWorldMBean extends Serializable{
- void setName(String name);
- String getName();
- void sayHello();
- String getHelloString();
- int getId();
- String toString();
- int hashCode();
- boolean equals( Object obj);
- HelloWorldMBean getThis();
- }
package com.rmi;import java.io.Serializable;public interface HelloWorldMBean extends Serializable{void setName(String name); String getName(); void sayHello(); String getHelloString(); int getId(); String toString(); int hashCode(); boolean equals( Object obj); HelloWorldMBean getThis();}
以下是HelloWorld.java类:
- package com.rmi;
- import java.io.Serializable;
- import java.util.concurrent.atomic.AtomicInteger;
- import javax.management.AttributeChangeNotification;
- import javax.management.MBeanRegistration;
- import javax.management.MBeanServer;
- import javax.management.NotificationBroadcasterSupport;
- import javax.management.ObjectName;
- public class HelloWorld implements HelloWorldMBean, Serializable{
- static AtomicInteger count = new AtomicInteger();
- private static final long serialVersionUID = 1627976932729278650L;
- int id = 0;
- String name;
- public synchronized void setName(String name) {
- this.name = name;
- }
- public synchronized String getName() {
- return name;
- }
- public synchronized void sayHello() {
- System.out.println(getHelloString());
- }
- public synchronized String getHelloString() {
- // System.out.println("1111");
- return "Hello, " + name;
- }
- public synchronized int getId() {
- return id;
- }
- public HelloWorldMBean getThis() {
- return this;
- }
- }
- JMX服务端和客户端的代码
- spring jmx客户端 和服务端配置
- JMX客户端访问代码
- 简单实用的java socket服务端和客户端代码
- 用thrift实现客户端和服务端的C++代码
- Android图片上传的客户端和服务端代码
- Socket编程服务端和客户端代码
- Mina客户端和服务端代码编写
- java NIO服务端和客户端代码实现
- 聊天程序服务端和客户端代码分享
- Spring JMX客户端连接代码
- Android上传图片到服务器的代码怎么写(Android客户端代码和服务端代码)
- NTP 客户端代码 服务端openwrt 的ntpd
- 客户端与服务端之间的关系代码
- 简单的服务端与客户端通信代码
- cxf 服务端生成客户端的代码
- 简单客户端 服务端代码
- 关于客户端和服务端聊天室的思路和代码(主要参考传智播客讲课)
- 在大并发写时,HBase的HDFS DFSClient端报SocketTimeoutException的问题分析和解决
- JS操作Cookie
- (四) JavaScript 事件处理(深入篇)
- 安全编码实践系列
- Chrome 插件开发(序)
- JMX服务端和客户端的代码
- EXTJS 比较日期大小
- Ubuntu ssh 配置,常用命令
- 基于WinCE模拟器的应用程序调试
- sqlite 数据库官方文档(翻译版)
- java 之 编码实现Filter学习示例
- js
- 实现google suggest效果
- 素数