Всегда ли атрибуты JMX CompositeDataSupport доступны только для чтения в JConsole?

После MXBeans в Java SE 6: объединение значений без специальных конфигураций клиента JMX I удалось реализовать MXBean, который предоставляет Map<String, String> для списка параметров конфигурации. Он отображается в JConsole, как и ожидалось, но все значения доступны только для чтения.

В статье MXBEans на этом рисунке показан пример, в котором атрибуты доступны только для чтения, поскольку они являются значениями использования памяти.

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

Есть ли способ сделать атрибуты редактируемыми в JConsole?


person mjn    schedule 13.02.2011    source источник
comment
Я хочу сделать то же самое; у вас был какой-то успех с этим, наконец?   -  person Eric B.    schedule 11.04.2012


Ответы (3)


Попробуйте использовать Spring MBeanExporter.
Я не уверен, возможно ли это с вами или нет.
Но это очень просто. Вот — очень хороший пример.

Спасибо.

person Nikunj    schedule 13.07.2011

Чтобы сделать атрибуты доступными для записи из JConsole, вам необходимо предоставить методы установки также в вашем интерфейсе MBean.

package com.example; 
public interface HelloMBean { 

public void sayHello(); 
public int add(int x, int y); 

public String getName(); 

public int getCacheSize(); 
public void setCacheSize(int size); 

}

В этом имени readOnly, cacheSize доступен как для чтения, так и для записи.

person Manish Singh    schedule 13.07.2011

Я не думаю, что вы можете сделать отдельные элементы доступными для записи (подумайте об этом с точки зрения удаленного API, составной тип — это просто DTO, mbean — это удаленный интерфейс), но я думаю, что вы можете сделать весь составной атрибут доступным для записи. , например:

public Map<String,String> getConfig() {}

public void setConfig(Map<String,String> newConfig) {}

при этом я не уверен, что jconsole поддерживает редактирование составных атрибутов, даже если они доступны для записи.

person jtahlborn    schedule 13.07.2011