В JMX я могу получить конкретный MBeanAttributeInfo напрямую? - PullRequest
0 голосов
/ 12 декабря 2011

Есть ли способ, без дополнительных библиотек, получить MBeanAttributeInfo определенного атрибута напрямую, в отличие от использования MBeanInfo.getAttributes() и выполнения линейного поиска по нему?

Пример сценария: проверить, является лиданный атрибут - jboss:service=Mail.State в примере - доступен для записи.

MBeanServer server; // Assume this is initialized somewhere else

MBeanAttributeInfo[] infos = server.getMBeanInfo(new ObjectName("jboss:service=Mail"));
for(MBeanAttributeInfo info : infos) {
    if(info.getName().equals("State")) {
        if(info.isWritable()) {
            //do something
        }
        break;
    }
}

Я надеюсь найти что-то вроде getAttributeInfo(ObjectName name, String attribute) метода в MBeanServer.

1 Ответ

1 голос
/ 13 ноября 2012

Вы можете получить по:

server.getAttribute(new ObjectName("jboss:service=Mail"), "State")

, где server - это MBeanServerConnection, а "State" - это имя атрибута.

...