Я хотел бы контролировать удаленный сервер Glassfish. Я включил JMX-соединение в 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">
Но это не помогло. Я все еще не могу подключиться к серверу с помощью JConsole. Тогда я нашел решение - мне нужно указать свойства JVM в domain.xml, чтобы открыть порт 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
на java.net.URLClassLoader $ 1.run (URLClassLoader.java:200)
at java.security.AccessController.doPrivileged (Native
Метод)
на java.net.URLClassLoader.findClass (URLClassLoader.java:188)
в java.lang.ClassLoader.loadClass (ClassLoader.java:307)
at sun.misc.Launcher $ AppClassLoader.loadClass (Launcher.java:301)
в java.lang.ClassLoader.loadClass (ClassLoader.java:252)
в java.util.logging.LogManager $ 1.run (LogManager.java:166)
at java.security.AccessController.doPrivileged (Native
Метод)
в java.util.logging.LogManager. (LogManager.java:156)
в java.util.logging.Logger.getLogger (Logger.java:273)
at sun.management.snmp.util.MibLogger. (MibLogger.java:57)
at sun.management.snmp.util.MibLogger. (MibLogger.java:42)
в sun.management.jmxremote.ConnectorBootstrap. (ConnectorBootstrap.java:760)
at sun.management.Agent.startAgent (Agent.java:127)
at 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)
в javax.management.MBeanServerFactory.createMBeanServer (MBeanServerFactory.java:213)
в 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)
at sun.management.Agent.startAgent (Agent.java:127)
at sun.management.Agent.startAgent (Agent.java:239)
Вызванный:
java.lang.ClassNotFoundException:
com.sun.enterprise.admin.server.core.jmx.AppServerMBeanServerBuilder
на java.net.URLClassLoader $ 1.run (URLClassLoader.java:200)
at java.security.AccessController.doPrivileged (Native
Метод)
на java.net.URLClassLoader.findClass (URLClassLoader.java:188)
в java.lang.ClassLoader.loadClass (ClassLoader.java:307)
at 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
Как я могу решить проблему?
Заранее спасибо.