Перечисление JMX MXBean, обрабатывающее ошибки преобразования - PullRequest
0 голосов
/ 08 сентября 2011

При использовании перечисления в качестве компонента значения для карты в MXBean, кажется, у меня возникли трудности с преобразованием перечисления.

public enum MyEnum {
    EnumVal1, EnumVal2, EnumVal3
};

public interface MyMXBean {
    Map<String,MyEnum> getEnumMap();
}

MyMXBean proxy = JMX.newMBeanProxy(ManagementFactory.getPlatformMBeanServer(), new ObjectName("MyMXBeanObjectName"), MyMXBean.class);
MyEnum retval = proxy.getEnumMap().get("key");

Исключение, которое я получаю в этой ситуации (edit:с тех пор понял, что это исключение связано с тем, что tabularDataSupport ожидает Object [] в качестве ключевого параметра.)

java.lang.String нельзя привести к [Ljava.lang.Object.;

Поэтому у меня возникает вопрос: насколько я понимаю, что типы enum должны неявно преобразовываться при неправильном использовании прокси-серверов JMX, или я что-то упускаю в плане извлечения информации?

Должен ли вызов прокси быть таким же, как вызов интерфейса, учитывая, что прокси должен представлять исходный интерфейс?

1 Ответ

1 голос
/ 08 сентября 2011

Проблема в том, что вы выбираете прокси-сервер MBean, а не прокси-сервер MXBean.

Попробуйте использовать

MyMXBean proxy = JMX.newMXBeanProxy(ManagementFactory.getPlatformMBeanServer(), new ObjectName("MyMXBeanObjectName"), MyMXBean.class); 
...