我想監視遠程glassfish服務器。我在domain.xml中啓用了JMX連接:如何激活遠程Glassfish服務器上的JMX以使用jconsole進行訪問?
<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">
但是這並沒有幫助。我仍然無法使用JConsole連接到服務器。然後我找到了解決方案 - 我需要在domain.xml中指定JVM屬性來打開遠程連接的8686端口。 所以我加入這行到Java的配置部分:
<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>
但現在當我開始服務器,我收到以下錯誤:
無法加載日誌管理 「COM .sun.enterprise.server.logging.ServerLogManager」 拋出java.lang.ClassNotFoundException: com.sun.enterprise.server.logging.ServerLogManager 在java.net.URLClassLoader的$ 1.run(URLClassLoader.java:200) 是java .security.Ac cessController.doPrivileged(本地 法) 在java.net.URLClassLoader.findClass(URLClassLoader.java:188) 在java.lang.ClassLoader.loadClass(ClassLoader.java:307) 在sun.misc.Launcher $ AppClassLoader。的loadClass(Launcher.java:301) 在java.lang.ClassLoader.loadClass(ClassLoader.java:252) 在java.util.logging.LogManager中$ 1.run(LogManager.java:166) 在java.security.AccessController (LogManager.java:156) (位於sun.management.snmp處)。 util.MibLogger。(MibLogger.java:57) at sun.management.snmp.u til.MibLogger。(MibLogger.java:42) 在sun.management.jmxremote.ConnectorBootstrap。(ConnectorBootstrap.java:760) 在sun.management.Agent.startAgent(Agent.java:127) 在sun.management。 Agent.startAgent(Agent.java:239) javax.management.JMRuntimeException: 無法加載的MBeanServerBuilder 類 com.sun.enterprise.admin.server.core.jmx.AppServerMBeanServerBuilder: 拋出java.lang.ClassNotFoundException: COM .sun.enterprise.admin.server.core.jmx.AppServerMBeanServerBuilder at javax.management.MBeanServerFactory.checkMBeanServerBuilder(MBeanServerFactory.java:480) at javax.management.MBeanServerFactory.getNewMBeanServerBuilder(MBeanServerFactory。的java:511) 在javax.management.MBeanServerFactory.newMBeanServer(MBeanServerFactory.java:298) 在javax.management.MBeanServerFactory.createMBeanServer(MBeanServerFactory.java:213) 在javax.management.MBeanServerFactory.createMBeanServer(MBeanServerFactory.java: 174) 在sun.management.ManagementFactory.createPlatformMBeanServer(ManagementFactory.java:302) 在java.lang.management.ManagementFactory.getPlatformMBeanServer(ManagementFactory.java:504) 在sun.management.jmxremote.ConnectorBootstrap.initialize(ConnectorBootstrap。 java:392) at sun.management.Agent.startAgent(Agent.java:127) at sun.management.Agent.startAgent(Agent.java:239) 引起者: java.lang.ClassN otFoundException: com.sun.enterprise.admin.server.core.jmx.AppServerMBeanServerBuilder at java.net.URLClassLoader $ 1.run(URLClassLoader.java:200) at java.security.AccessController。doPrivileged的(本地 法) 在java.net.URLClassLoader.findClass(URLClassLoader.java:188) 在java.lang.ClassLoader.loadClass(ClassLoader.java:307) 在sun.misc.Launcher $ AppClassLoader.loadClass( Launcher.java:301) 在java.lang.ClassLoader.loadClass(ClassLoader.java:252) 在javax.management.MBeanServerFactory.loadBuilderClass(MBeanServerFactory.java:423) 在javax.management.MBeanServerFactory.checkMBeanServerBuilder(使用MBeanServerFactory。 java:465) ... 9更多代理拋出的異常: javax.management.JMRuntimeException: 未能加載MBeanServerBuilder 類 com.sun.enterprise.admin.server.core .jmx.AppServerMBeanServerBuilder: 拋出java.lang.ClassNotFoundException: com.sun.enterprise.admin.server.core.jmx.AppServerMBeanServerBuilder
我怎樣才能解決這個問題?
在此先感謝。
只是要確定:第一步 - 是否需要從JVM選項中刪除所有com.sun.management.jmxremote設置? – tronda 2010-03-18 12:24:20
這意味着保持它們與開箱即用相同。如果JMX設置存在 - 讓他們成爲,如果他們不 - 不要添加它們。 – Pavel 2010-03-19 10:28:02