JmxResource, опубликованный с помощью simplejmx, не отображается в JConsole

Я использую simplejmx опубликовать мой JMX Resources,

у меня есть jmx-config.xml

<bean id="beanPublisher" class="com.j256.simplejmx.spring.BeanPublisher">
    <property name="jmxServer" ref="jmxServer" />
</bean>

<bean id="jmxServer" class="com.j256.simplejmx.server.JmxServer"
    init-method="start" destroy-method="stop">
    <property name="registryPort" value="8123" />
</bean>

Я начинаю свой JBoss приложение, все ок:

15:20:11,860 INFO  [org.springframework.beans.factory.support.DefaultListableBeanFactory] (MSC service thread 1-8) Pre-instantiating singletons in org.springframework.beans.factory.support.DefaultListableBeanFactory@1be30160: defining beans [...,beanPublisher,jmxServer,...]; root of factory hierarchy

Я создал просто класс.

package com.mypckg.jmx;

import com.j256.simplejmx.common.JmxAttributeField;
import com.j256.simplejmx.common.JmxResource;

@JmxResource(description = "Blah1", domainName = "Blah2", beanName = "Blah3")
public class DummyJMX {

    @JmxAttributeField(description = "Blah4")
    private int var = 3;
}

Я начинаю JConsoleЯ выбираю JBoss приложение, и я собираюсь MBeans, Вот что я вижу:

введите описание изображения здесь*

Наверное, мой DummyJMX класс не был опубликован (или я просто не могу его найти).

О каком шаге я забыл?

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


РЕДАКТИРОВАТЬ:

введите описание изображения здесь


РЕДАКТИРОВАТЬ:

@ Андрей Стефан

Ошибка, которую я получил, используя вашу ссылку:

введите описание изображения здесь

@Серый

Ошибка, которую я получил, используя localhost:8123:

введите описание изображения здесь

3 ответа

Решение

Наконец, я связан с моим JMX Beans с помощью JConsole,

Возможно, я сделал что-то не так в начале моей работы с simplejmx,

Я не изменил много вещей. Я продолжал jmx-config файл, и я до сих пор использую версию 1.8 из simplejmx,

Я могу легко подключиться к этому бобу locally - Я понятия не имею, почему я не смог сделать это раньше. Подскажите, почему по вашему мнению это не должно быть local process?

Ниже вы можете увидеть, что мой JMX Bean появляется в JConsole:

введите описание изображения здесь

Попробуйте следующий URL в JConsole, с опцией Remote Process: service:jmx:rmi:///jndi/rmi://localhost:8123/jmxrmi

Это немного отличается от того, что я предоставил в комментариях.

Возможно, мой класс DummyJMX не был опубликован (или я просто не могу его найти).

Когда вы используете registryPort конфигурация для JmxServer тогда он не будет отображаться в списке "Локальный процесс" в Jconsole. Он будет доступен как "Удаленный процесс" с localhost:8123, Если вы используете Linux, вы можете использовать netstat -an | grep LISTEN чтобы увидеть, какие порты слушает ваше приложение. Если вы не видите 8123 в списке, возможно, на нем уже настроен сервер RMI?

Если вы хотите использовать платформу mbean-server, которая отображается как локальный процесс, используйте новый установщик или конструктор в версии 1.9, которая была выпущена недавно (4/2014). К сожалению, SimpleJMX не может программно зарегистрироваться, поэтому он отображается в списке процессов - это не тот код, который экспортирует JVM.

<bean id="jmxServer" class="com.j256.simplejmx.server.JmxServer"
    init-method="start" destroy-method="stop">
    <property name="usePlatformMBeanServer" value="true" />
</bean>
Другие вопросы по тегам