由于时间关系,直接上demo
package com.arlord.demo;
import javax.management.Attribute;
import javax.management.MBeanServer;
import javax.management.MBeanServerFactory;
import javax.management.ObjectName;
import mx4j.tools.adaptor.http.HttpAdaptor;
import mx4j.tools.adaptor.http.XSLTProcessor;
public class MBeanAttributeInfo_Register {
public static void main(String[] args) throws Exception{
//这里使用的JMX的MBeanServerFactory直接返回一个MBeanServer的接口
MBeanServer server = MBeanServerFactory.createMBeanServer();
//为MBean创建对象名
ObjectName serverName = new ObjectName("http:name=HttpAdaptor");
//为MBeanServer创建HTTP的适配器
HttpAdaptor adaptor = new HttpAdaptor();
//注册MBean
server.registerMBean(adaptor, serverName);
//为serverName的MBean注入属性
server.setAttribute(serverName, new Attribute("Port",2088));
server.setAttribute(serverName, new Attribute("Host", "localhost"));
//XSLTProcessor的MBean对象名
ObjectName processorName = new ObjectName("Http:name=XSLTProcessor");
//XSLTProcessor是通过XSLT转换传递文件的
XSLTProcessor processor = new XSLTProcessor();
//注册处理器MBean
server.registerMBean(processor, processorName);
//为处理器注入属性
server.setAttribute(serverName, new Attribute("ProcessorName",processorName));
//创建属于自己的MBean
ObjectName test = new ObjectName("bzMBean:name=BeanInfo");
//注册已经写好的MBean
server.registerMBean(new MBeanAttributeInfo_Test(), test);
//在Mean上调用start操作
server.invoke(serverName,"start",null,null);
}
}
package com.arlord.demo;
import java.lang.reflect.Method;
import javax.management.MBeanAttributeInfo;
import javax.management.MBeanOperationInfo;
import mx4j.AbstractDynamicMBean;
public class MBeanAttributeInfo_Test extends AbstractDynamicMBean{
private String name = "Brad Pitt";
private int age = 68;
private long totalM = 0L;
private long leftM = 0L;
public String sayHello(String words){
return "your friend said: " + words;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
//查看内存使用情况
public String getMemory(){
totalM = Runtime.getRuntime().totalMemory() / 1024 /1024;
long maxM = Runtime.getRuntime().maxMemory()/1024/1024;
leftM = Runtime.getRuntime().freeMemory()/1024/1024;
long usedM = totalM - leftM;
return "总内存: " + totalM + " 使用的内存: " + usedM;
}
//重写创建MBean属性信息的的方法,该方法是创建的MBean是直接展示到页面上的
@Override
protected MBeanAttributeInfo[] createMBeanAttributeInfo() {
// TODO Auto-generated method stub
totalM = Runtime.getRuntime().totalMemory() / 1024 /1024;
return new MBeanAttributeInfo[]{
new MBeanAttributeInfo("Name", String.class.getName(), "使用者名称", true, true, false),
new MBeanAttributeInfo("Age", int.class.getName(), "年龄", true, true, false),
new MBeanAttributeInfo("Memory", String.class.getName(), "内存", true, true, false)};
}
//重写创建操作信息的的MBean方法,该方法用于页面控制后台的信息,页面可以invoke对应MBean里面的方法,做出相应操作
@Override
protected MBeanOperationInfo[] createMBeanOperationInfo() {
// TODO Auto-generated method stub
Method sayHello = null;
try {
sayHello = this.getClass().getMethod("sayHello", new Class[]{String.class});
} catch (SecurityException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (NoSuchMethodException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return new MBeanOperationInfo[]{new MBeanOperationInfo("打个招呼", sayHello)};
}
}
访问:http://localhost:2088
分享到:
相关推荐
mx4j-tools.jar
mx4j.jarmx4j.jar
mx4j-remote.jar
mx4j-jmx.jar
mx4j-impl.jar
mx4j是jmx的开源框架实现,可实现系统开发的微内核管理
mx4j是对于jmx的一个具体实现,比较古老了,不知有无人需要
jdom.jar;javax.servlet.jar;mx4j.jar
NULL 博文链接:https://luisfigo.iteye.com/blog/703759
mx4j-rjmx.jar
将jmx与spring结合的jar都下载完毕2.1.1 大家可以节省时间
mx4j-examples.jar
mx4j-rimpl.jar
MX4J是Java管理扩展技术的开放源代码实现,适用于JSR 3(JMX)和JSR 160(JMX远程API)。
而根据这个接口的实现则有很多种,比如Weblogic 的JMX实现、MX4J、JBoss的JMX实现。在SUN自己也实现了一份,不过在JDK1.4之前,这件JMX实现(一些JAR包)是可选的,你得去 它的网站上下载。JDK5.0则内嵌了进来,安装...
Hyperic HQ是一个开源(GPL授权)IT资源管理平台。 Hyperic HQ 可以监控和管理: •操作系统:AIX,HP/UX,Linux,Solaris,...•应用平台: LAMP,LAM-J,J2EE,MX4J •其他:网络设备交换机,路由器,网络服务等。
JMX应用技术架构系统(包括具体开发说明),详细介绍了JMX的应用场景以及MX4J在分布式应用监控方面的应用开发方法.
目录 ..........................................................................................................................I 译者声明..................................................................
安装mx4j“ apt-get安装libmx4j-java” 安装CTOP“ dpkg -i ctop_1.3_amd64.deb” 找出导致您的Cassandra集群中断的原因 安装(二进制): 下载二进制文件(或自己编译) 在java / cassandra类路径中安装mx4j ...
stop_cassandra_repairs 将使用 MX4J 停止您提供的节点上的任何未完成的修复。 需要 。 ##用法 stop_cassandra_repairs $HUNG_NODE [$HUNG_NODE ...]cassandra_repair_scheduler.py 用于在集群上安排维修的脚本。...