Удаленное подключение к JBoss 7.1.1 MBean

После реализации MBean в нашем проекте (развернутом на JBoss AS 7.1.1 в автономном режиме) я провел некоторое тестирование с использованием JConsole и создал соединение «Локальный процесс» (тот, который использует JBoss PID), и это сработало нормально. . MBean можно увидеть, достичь и вернуть ожидаемое значение. Однако я не могу подключиться с помощью «Удаленного процесса».

Экран нового подключения JConsole

Это конфигурация подсистемы JMX:

    <subsystem xmlns="urn:jboss:domain:jmx:1.1">
        <show-model value="true"/>
        <remoting-connector use-management-endpoint="true"/>
    </subsystem>

И это конфигурация сокета:

<socket-binding-group name="standard-sockets" default-interface="public" port-offset="${jboss.socket.binding.port-offset:0}">
    <socket-binding name="management-native" interface="management" port="${jboss.management.native.port:9995}"/>
    <socket-binding name="management-http" interface="management" port="${jboss.management.http.port:9990}"/>
    <socket-binding name="management-https" interface="management" port="${jboss.management.https.port:9443}"/>
    <socket-binding name="ajp" port="8009"/>
    <socket-binding name="http" port="8080"/>
    <socket-binding name="https" port="8443"/>
    <socket-binding name="osgi-http" interface="management" port="8090"/>
    <socket-binding name="remoting" port="4447"/>
    <socket-binding name="txn-recovery-environment" port="4712"/>
    <socket-binding name="txn-status-manager" port="4713"/>
    <outbound-socket-binding name="mail-smtp">
        <remote-destination host="localhost" port="25"/>
    </outbound-socket-binding>
</socket-binding-group>

Я нашел несколько вкусов для URL-адреса, но безуспешно пробовал их с различными предлагаемыми портами (9990, 9995, 1090, 4447):

  • сервис: jmx: удаленный-jmx://127.0.0.1:9995
  • сервис: jmx:rmi:///jndi/rmi://127.0.0.1:9995/jmxrmi

Ошибка малоинформативна и говорит "Подключение к... не удалось"

Я настроил свой JBoss в соответствии с информацией, найденной здесь:

Я думаю, что у меня есть правильная конфигурация для JBoss 7.1.1, и тогда порт должен быть «собственным для управления» (9995), но здесь должно быть что-то отсутствующее. Может кто знает что может быть?

Спасибо заранее!


person Daniel Rodríguez    schedule 10.02.2016    source источник


Ответы (1)


Используя конфигурацию вашего порта, URL-адрес service:jmx:remoting-jmx://127.0.0.1:9995 работает для меня с:

  1. Используйте ‹jboss-home›/bin/jconsole.sh (или bat) для запуска jconsole. Это включает в себя требуемый путь к классам.
  2. Убедитесь, что переменная окружения JBOSS_HOME установлена ​​правильно. Я запускаю пару разных версий и обжегся на этом.
  3. Необходимо использовать действительный пользователь управления и пароль. Неиспользование этих учетных данных (или недействительных) дает вам те же неочевидные сообщения об ошибках.

Таким образом, при использовании remoting-jmx целевой порт должен быть портом, определенным в ‹socket-binding name="management-native" interface="management" port="${jboss.management". .native.port:9995}"/›

Насколько я понимаю, при использовании http-remoting-jmx целевой порт должен быть портом, определенным в ‹socket-binding name="management-http" interface="management" port= "${jboss.management.http.port:9990}"/›, но мне никогда не удавалось заставить это работать.

Я не полностью в восторге от этих новых протоколов, поэтому часто развертываю JMXMP ConnectionServer.... проблема решена.

person Nicholas    schedule 10.02.2016
comment
Использование ‹jboss-home›/bin/jconsole.sh для запуска jconsole — это то, чего мне не хватало! Я все время использовал JDK JConsole... Большое спасибо! - person Daniel Rodríguez; 10.02.2016