Атрибуты JMX CompositeDataSupport всегда доступны только для чтения в JConsole? - PullRequest
4 голосов
/ 13 февраля 2011

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

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

enter image description here

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

Ответы [ 3 ]

0 голосов
/ 13 июля 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); 

}

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

0 голосов
/ 13 июля 2011

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

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

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

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

0 голосов
/ 13 июля 2011

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

Спасибо.

...