So aktivieren Sie JMX auf remote Glassfish-server für den Zugang mit jconsole?
Ich würde gerne monitor-remote glassfish server. Ich habe aktiviert JMX-Verbindung in domain.xml:
<jmx-connector accept-all="true" address="0.0.0.0" auth-realm-name="admin-realm" enabled="true" name="system" port="8686" protocol="rmi_jrmp" security-enabled="false">
Aber das hat nicht geholfen. Ich kann immer noch keine Verbindung zum server mit JConsole. Dann ich habe die Lösung gefunden - ich muss zu geben Sie die JVM-Eigenschaften in domain.xml öffnen 8686-port für remote-Verbindung.
Also ich habe diese Zeilen in java-config Abschnitt:
<jvm-options>-Dcom.sun.management.jmxremote</jvm-options>
<jvm-options>-Dcom.sun.management.jmxremote.port=8686</jvm-options>
<jvm-options>-Dcom.sun.management.jmxremote.local.only=false</jvm-options>
<jvm-options>-Dcom.sun.management.jmxremote.authenticate=false</jvm-options>
Aber wenn ich jetzt starten des Servers erhalte ich folgenden Fehler:
Konnte nicht geladen Logmanager
"com.Sonne.enterprise.server.die Protokollierung.ServerLogManager"
java.lang.ClassNotFoundException:
com.Sonne.enterprise.server.die Protokollierung.ServerLogManager
bei java.net.URLClassLoader$1.run(URLClassLoader.java:200)
bei java.Sicherheit.AccessController.doPrivileged(Native
Methode)
bei java.net.URLClassLoader.findClass(URLClassLoader.java:188)
bei java.lang.ClassLoader.loadClass(ClassLoader.java:307)
bei der sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
bei java.lang.ClassLoader.loadClass(ClassLoader.java:252)
bei java.util.die Protokollierung.LogManager$1.run(LogManager.java:166)
bei java.Sicherheit.AccessController.doPrivileged(Native
Methode)
bei java.util.die Protokollierung.LogManager.(LogManager.java:156)
bei java.util.die Protokollierung.Logger.getLogger(Logger.java:273)
bei der sun.management.snmp.util.MibLogger.(MibLogger.java:57)
bei der sun.management.snmp.util.MibLogger.(MibLogger.java:42)
bei der sun.management.jmxremote.ConnectorBootstrap.(ConnectorBootstrap.java:760)
bei der sun.management.Agent.startAgent(Agent.java:127)
bei der sun.management.Agent.startAgent(Agent.java:239)
javax.management.JMRuntimeException:
Fehler beim laden MBeanServerBuilder
Klasse
com.Sonne.enterprise.admin.server.core.jmx.AppServerMBeanServerBuilder:
java.lang.ClassNotFoundException:
com.Sonne.enterprise.admin.server.core.jmx.AppServerMBeanServerBuilder
bei javax.management.MBeanServerFactory.checkMBeanServerBuilder(MBeanServerFactory.java:480)
bei javax.management.MBeanServerFactory.getNewMBeanServerBuilder(MBeanServerFactory.java:511)
bei javax.management.MBeanServerFactory.newMBeanServer(MBeanServerFactory.java:298)
bei javax.management.MBeanServerFactory.createMBeanServer(MBeanServerFactory.java:213)
bei javax.management.MBeanServerFactory.createMBeanServer(MBeanServerFactory.java:174)
bei der sun.management.ManagementFactory.createPlatformMBeanServer(ManagementFactory.java:302)
bei java.lang.management.ManagementFactory.getPlatformMBeanServer(ManagementFactory.java:504)
bei der sun.management.jmxremote.ConnectorBootstrap.initialize(ConnectorBootstrap.java:392)
bei der sun.management.Agent.startAgent(Agent.java:127)
bei der sun.management.Agent.startAgent(Agent.java:239)
Verursacht durch:
java.lang.ClassNotFoundException:
com.Sonne.enterprise.admin.server.core.jmx.AppServerMBeanServerBuilder
bei java.net.URLClassLoader$1.run(URLClassLoader.java:200)
bei java.Sicherheit.AccessController.doPrivileged(Native
Methode)
bei java.net.URLClassLoader.findClass(URLClassLoader.java:188)
bei java.lang.ClassLoader.loadClass(ClassLoader.java:307)
bei der sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
bei java.lang.ClassLoader.loadClass(ClassLoader.java:252)
bei javax.management.MBeanServerFactory.loadBuilderClass(MBeanServerFactory.java:423)
bei javax.management.MBeanServerFactory.checkMBeanServerBuilder(MBeanServerFactory.java:465)
... 9 weitere Ausnahme, die ausgelöst durch den Agenten :
javax.management.JMRuntimeException:
Fehler beim laden MBeanServerBuilder
Klasse
com.Sonne.enterprise.admin.server.core.jmx.AppServerMBeanServerBuilder:
java.lang.ClassNotFoundException:
com.Sonne.enterprise.admin.server.core.jmx.AppServerMBeanServerBuilder
Wie kann ich das problem beheben?
Vielen Dank im Voraus.
InformationsquelleAutor Pavel | 2009-08-05
Du musst angemeldet sein, um einen Kommentar abzugeben.
Schritte, um das problem zu lösen sind:
1. verwenden Sie die Standard-Einstellungen
2. add-Djava.rmi.server.hostname= der JVM-Optionen der Instanz des GlassFish.
Es bedeutet, Sie zu halten die gleichen, wie Sie waren, out-of-the-box. Wenn Sie die JMX-Einstellungen vorhanden ist - lassen Sie Sie sein, wenn Sie nicht - nicht, fügen Sie Sie hinzu.
InformationsquelleAutor Pavel
Immer noch mystischen Verhalten, aber mit diesen 4 Einstellungen Sie können die Verbindung zu der JVM ausgeführt Glassfish (hinzufügen domain.xml in der admin-Konsole, Neustart erforderlich)
Vorsicht ! Dies ist nicht sicher, wer jetzt eine Verbindung herstellen können jconsole !
IMO ist dies nicht der Glassfish Weise, die den JMX-connector.
(Oben arbeitet im GF 3.1)
InformationsquelleAutor javadude
Ich landete setzen der folgenden option, um sicherzustellen, dass der JMX-mit Glassfish ist firewall-freundlich:
Wobei XXXX die Portnummer, die Sie verwenden in der firewall zusammen mit dem application server konfiguriert JMX-port-Nummer (in der Regel 8686).
Lesen Sie mehr in dieser Beitrag. Beachten Sie, dass diese Funktion benötigt eine neuere version von Glassfish. Ich habe erfolgreich verwendet es mit Glassfish 2.1.1.
InformationsquelleAutor tronda
Ist es nicht GlassFish Problem 1409?
InformationsquelleAutor Grzegorz Oledzki
Wenn das ausführen Ihrer Anwendung in Glassfish app server, führen Sie einfach den folgenden Befehl asadmin, würden Sie brauchen, um starten Sie alle Server, damit die änderung wirksam wird.
./asadmin enable-secure-admin
Gibt es extra Glassfish-server-Konfigurationen, um weitere Sicherheit aktivieren, sehen Sie mehr an Remote-Verbindung zu Glassfish über JMX.
Sie tun müssen, befolgen Sie die Schritte auf JVM-Optionen, sind diese Anweisungen für Java-Anwendungen im Allgemeinen. Für eine Java-Anwendung, läuft mit Glassfish application server, einfach mit der asadm Befehl. Das erspart mir viel Zeit!
** Noch ein Hinweis, nur mit den Einstellungen über JVM-Optionen, Glassfish würde nicht starten, mit den oben genannten runtime-exceptions.
** Ich bin mit GF3.1.2 und oben, und Java 7.
InformationsquelleAutor Yu Chen