Wie integrieren JMX mit Frühling?
Habe ich einfache Klasse über JMX:
Schnittstelle HelloMBean:
public interface HelloMBean {
public void sayHello();
public String getName();
public void setName(String name);
public String conCat(String s1, String s2);
}
Klasse Hallo, implementiert die von der Schnittstelle 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;
}
}
Dann erstelle ich eine Klasse 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);
}
}
Und 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 mit rmiregistry 7271. Ich habe das erstellen von einfachen client und server mittels JMX. Aber ich kann nicht Integration mit Spring JMX (JMX behandelt mit Feder). Ich habe versucht, aber erfolglos. Keine Lösung für Sie??
InformationsquelleAutor Google New | 2013-06-09
Du musst angemeldet sein, um einen Kommentar abzugeben.
Es ist viel einfacher, es einfach lassen Spring JMX verwalten für Sie.
Ihre Frage ist ungenau; es ist überhaupt nicht klar, was Ihr bittet. Sie müssen genau erklären, was Sie zu tun versuchen.
Ich habe gerade deine Antwort gelesen. Ich bin nach deinem link. Vielleicht werden Sie in der Lage sein zu helfen, mit diesem Thema: stackoverflow.com/q/22789428/1021970
InformationsquelleAutor Gary Russell