spring jmx java,如何将JMX与Spring集成?

博客内容讲述了如何创建一个简单的JMX客户端和服务端,并展示了HelloMBean接口和Hello类的实现。然后,作者尝试将JMX与Spring集成,但遇到了困难。解决方案建议让Spring接管JMX管理,以简化集成过程。
摘要由CSDN通过智能技术生成

I have simple class about JMX:

Interface HelloMBean:

public interface HelloMBean {

public void sayHello();

public String getName();

public void setName(String name);

public String conCat(String s1, String s2);

}

Class Hello implements from interface HelloMBean:

import javax.management.AttributeChangeNotification;

import javax.management.Notification;

import javax.management.NotificationBroadcasterSupport;

public class Hello extends NotificationBroadcasterSupport implements HelloMBean {

private String m_name;

@Override

public void sayHello() {

System.out.print("I say hello");

}

@Override

public String getName() {

return null;

}

@Override

public void setName(String name) {

Notification n = new AttributeChangeNotification(

this, 0,

System.currentTimeMillis(),

"My name is changed",

"setName", "String", m_name, name);

sendNotification(n);

m_name = name;

}

@Override

public String conCat(String s1, String s2) {

return null;

}

}

Then, I create a class client:

import javax.management.JMX;

import javax.management.MBeanServerConnection;

import javax.management.ObjectName;

import javax.management.remote.JMXConnector;

import javax.management.remote.JMXConnectorFactory;

import javax.management.remote.JMXServiceURL;

public class HelloClient {

public static void main(String[] args) throws Exception {

JMXServiceURL url = new JMXServiceURL("service:jmx:rmi:///jndi/rmi://localhost:7271/Hello");

JMXConnector cn = JMXConnectorFactory.connect(url);

MBeanServerConnection msc = cn.getMBeanServerConnection();

ObjectName helloObjName = new ObjectName("com:service=Hello1");

HelloMBean hello = JMX.newMBeanProxy(msc, helloObjName, HelloMBean.class);

hello.sayHello();

System.out.println(hello.conCat("I am", " a hello mbean"));

Thread.sleep(Long.MAX_VALUE);

}

}

And class Server:

import java.lang.management.ManagementFactory;

import javax.management.MBeanServer;

import javax.management.ObjectName;

import javax.management.remote.JMXConnectorServer;

import javax.management.remote.JMXConnectorServerFactory;

import javax.management.remote.JMXServiceURL;

public class HelloMain {

public static void main(String[] args) throws Exception {

MBeanServer ms = ManagementFactory.getPlatformMBeanServer();

ObjectName helloMBName = new ObjectName("com:service=Hello1");

Hello hello = new Hello();

ms.registerMBean(hello, helloMBName);

JMXServiceURL url = new JMXServiceURL(

"service:jmx:rmi:///jndi/rmi://localhost:7271/Hello");

JMXConnectorServer cs = JMXConnectorServerFactory.newJMXConnectorServer(url, null, ms);

cs.start();//

Thread.sleep(Long.MAX_VALUE);

}

}

Affter using rmiregistry 7271. I have create simple client and server using JMX. But I can't integrate JMX with Spring (JMX handled with Spring). I have try but unsuccessful. Have any solution for it??

解决方案

It's much easier to just let Spring manage JMX for you.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值