Mbeans registriert mbean-server nicht zeigen, bis in der jconsole
Erstelle ich eine mbean server mit MBeanServerFactory.createMBeanServer und registrieren von mbeans mit ihm. Ich kann die mbean-server in jconsole, aber wenn ich eine Verbindung zu es ich sehe nicht registrierten mbeans. Hier ist der code:
public static void main(String[] args) throws Exception
{
MBeanServer mbeanServer = MBeanServerFactory.createMBeanServer("example");
ObjectName objectName = new ObjectName("example:type=simpleMbean");
Simple simple = new Simple (1, 0);
mbeanServer.registerMBean(simple, objectName);
while (true)
{
}
}
Anstatt eine mbean server, wenn ich mit dem platformMBeanServer und registrieren meine mbean es, ich kann sehen, dass die mbean in der jconsole. Keine Ahnung, was ich sonst noch brauchen zu tun, während Sie createMBeanServer?
- Gut, Sie dachte es sich schon. Sie können beliebig viele MBeanServers in Ihrer JVM, wie Sie möchten, aber tools wie JConsole oder mit JVisualVM wird nur auf die Plattform zu verbinden MBeanServer (java.lang.management.ManagementFactory.getPlatformMBeanServer()). Daher müssen Sie registrieren Sie Ihr MBeans mit diesem server.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich stieß auf dieses Problem gestern aber geschafft zu Sortieren, dass aus. Ich verbringe einige Zeit damit, dass ich dachte, dieses Thema wäre hilfreich, um jemand anders zu retten ist Zeit.
Ersten, die Sie registrieren, können Sie Bohnen in den java-code wie bereits in Ihrem Beitrag in der main-Methode.
Aber ich glaube es ist wesentlich einfacher, wenn Sie verwenden Frühling.
Überprüfen Sie diesen link für weitere Informationen; http://static.springsource.org/spring/docs/2.0.x/reference/jmx.html
Gibt es einige Schlupflöcher, die Sie vermeiden müssen. Starten Sie nicht zwei MBeans-Server in Ihrer Anwendung.
Habe ich diese config-Datei:
Verwenden Sie diese Konfiguration zum anbringen einer bean-name MBeanExporter. Stellen Sie sicher, dass "lazy-init' auf false gesetzt ist. Bitte beachten Sie, ich bin mit dieser Konfiguration in einer webapplication. Web-Anwendung bereitgestellt wird, die im tomcat. Also tomcat hat schon MBean-server. So brauchen Sie nicht, um zu bieten, dass man sich ausdrücklich. Wenn Sie es in einem standalone-Modus Sie müssen zunächst eine MBean-server und konfigurieren Sie es entsprechend.
Bitte beachten Sie auch die Sie benötigen, fügen Sie folgende Eigenschaften innerhalb der tomcat catalina.bat-Datei.
set CATALINA_OPTS=-Dcom.Sonne.management.jmxremote -Dcom.Sonne.management.jmxremote.port=8088 -Dcom.Sonne.management.jmxremote.ssl=false -Dcom.Sonne.management.jmxremote.authenticate=false -Dcom.Sonne.management.jmxremote.hostname="localhost"
Jmx-connector-port ist in diesem Fall 8088 und der hostname 'localhost'
Sobald Sie begonnen haben, tomcat starten Sie jconsole(ich werde nicht sagen, wie um es zu starten hier), Dann klicken Sie auf "RemoteProcess' und geben Sie 'localhost:8088' und die Verbindung zum tomcat MBean-server. Dann gehen Sie zum MBean-Registerkarte in jconsole und Sie sollten Ihren MBean es.
Die einfachste Lösung ist die Nutzung der Plattform-MBean-Server Konfiguration per system-Eigenschaften.
So müssen Sie die
MBeanServer
Instanz mitund legen Sie die folgenden system-properties beim Start der Anwendung:
Wenn Sie möchten, um zu sehen, Ihre MBeans in der JConsole, müssen Sie die RMI. Im Grunde tun die folgende
Müssen Sie verwenden PlatformMBeanServer
ps http://www.javalobby.org/java/forums/t49130.html