我想监控远程 glassfish 服务器。我在 domain.xml 中启用了 JMX 连接:
<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-config部分:
<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>
但是现在当我启动服务器时,出现以下错误:
无法加载 Logmanager “com.sun.enterprise.server.logging.ServerLogManager” java.lang.ClassNotFoundException: com.sun.enterprise.server.logging.ServerLogManager at java.net.URLClassLoader$1.run(URLClassLoader.java:200)在 java.security.AccessController.doPrivileged(Native Method) 在 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.doPrivileged (本机方法)在 java.util.logging.LogManager.(LogManager.java:156) 在 java.util.logging.Logger。getLogger(Logger.java:273) 在 sun.management.snmp.util.MibLogger.(MibLogger.java:57) 在 sun.management.snmp.util.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 在 javax.management.MBeanServerFactory.checkMBeanServerBuilder(MBeanServerFactory.java :480) 在 javax.management.MBeanServerFactory.getNewMBeanServerBuilder(MBeanServerFactory.java:511) 在 javax。management.MBeanServerFactory.newMBeanServer(MBeanServerFactory.java:298) at javax.management.MBeanServerFactory.createMBeanServer(MBeanServerFactory.java:213) at javax.management.MBeanServerFactory.createMBeanServer(MBeanServerFactory.java:174) at sun.management.ManagementFactory.createPlatformMBeanServer (ManagementFactory.java:302) 在 java.lang.management.ManagementFactory.getPlatformMBeanServer(ManagementFactory.java:504) 在 sun.management.jmxremote.ConnectorBootstrap.initialize(ConnectorBootstrap.java:392) 在 sun.management.Agent.startAgent( Agent.java:127) 在 sun.management.Agent.startAgent(Agent.java:239) 引起:java.lang.ClassNotFoundException: com.sun.enterprise.admin.server.core.jmx.AppServerMBeanServerBuilder 在 java.net。 URLClassLoader$1。在 java.net.URLClassLoader.findClass(URLClassLoader.java:188) 在 java.lang.ClassLoader.loadClass(ClassLoader.java:307) 的 java.security.AccessController.doPrivileged(Native Method) 运行(URLClassLoader.java:200)在 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
我该如何解决这个问题?
提前致谢。