标签:jmx spring java spring-jmx
我有关于JMX的简单课程:
接口HelloMBean:
public interface HelloMBean {
public void sayHello();
public String getName();
public void setName(String name);
public String conCat(String s1, String s2);
}
Hello类从接口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;
}
}
然后,我创建一个类客户端:
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);
}
}
和类服务器:
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);
}
}
之后使用rmiregistry7271.我已经使用JMX创建了简单的客户端和服务器.但是我无法将JMX与Spring集成(由Spring处理的JMX).我尝试过但未成功.有什么解决办法吗?
解决方法:
让Spring manage JMX for you容易得多.
标签:jmx,spring,java,spring-jmx 来源: https://codeday.me/bug/20191030/1970656.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。