У меня возникли проблемы с тем, чтобы JMX работал на Jetty (9.1.3.v20140225), поэтому я прочитал об этом в документации Jetty.
Итак, я добавил в файл jetty.conf следующее:
# ========================================================
# jetty.conf Configuration for jetty.sh script
# --------------------------------------------------------
# This file is used by the jetty.sh script to provide
# extra configuration arguments for the start.jar command
# created by that script.
#
# Each line in this file becomes an arguement to start.jar
# in addition to those found in the start.ini file
# =======================================================
jetty-logging.xml
jetty-started.xml
etc/jetty.xml
etc/jetty-jmx.xml
etc/jetty-jmx-remote.xml
и я добавил jmx как часть команды start.jar --add-to-start, как сказал мне doco, как часть подключения Jconsole к Jetty
http://www.eclipse.org/jetty/documentation/current/jetty-jconsole.html
[mybase]$ java /opt/jetty-dist/start.jar --add-to-start=jmx
INFO: jmx-remote initialised in ${jetty.base}/start.ini (appended)
INFO: jmx initialised transitively
Конечно, когда я это сделал, он добавил только jmx, а не jmx-remote, не знаю почему, но я надеюсь, что кто-то сможет сообщить мне, почему.
Сказав все это из документации, которую я прочитал, я скрыл, что они хотят, чтобы это заработало.
http://www.eclipse.org/jetty/documentation/current/jmx-chapter.html
Но опять же то, что в нем говорится, не совсем верно в том, что я вижу в пакете, поэтому я добавил причину, по которой я добавил jetty-jmx-remote, поскольку в нем то, что говорит doco, должно быть в jetty-jmx.xml.
В любом случае, когда я запускаю Jetty, я вижу в файле журнала, что он запускается
ИНФОРМАЦИЯ: oejj.ConnectorServer: main: JMX Remote URL: service: jmx: rmi: // host: 1099 / jndi / rmi: // host: 1099 / jmxrmi
Я могу подключиться к 1099 через telnet с сервера, с моего клиента, я использовал nmap, чтобы дважды проверить, что порт слушает, а также видел это в netstat. Когда я использую VisualVM для подключения, я просто получаю сообщение об ошибке.
Я убедился, что я открыл все порты между моей сетью и местом, где находится Jetty.
Может ли кто-нибудь указать мне в правильном направлении, чтобы начать работу.
Спасибо
Отсортировал, нужно было вручную добавить в start.ini
--module=jmx-remote
## JMX Configuration
## Enable for an open port accessible by remote machines
jetty.jmxrmihost=localhost
jetty.jmxrmiport=1099
## Strictly speaking you shouldn't need --exec to use this in most environments.
## If this isn't working, make sure you enable --exec as well
-Dcom.sun.management.jmxremote
И обновил это в jetty-jmx.xml.
<Call class="java.lang.System" name="setProperty">
<Arg>java.rmi.server.hostname</Arg>
<Arg>IP-Address</Arg>
</Call>
Плюс не нужно было делать то, что я делал с jetty.conf.