Перечисление JMX MXBean, обрабатывающее ошибки преобразования

При использовании перечисления в качестве компонента значения Map в 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[] в качестве ключевого параметра.)

Строка не может быть приведена к [Ljava.lang.Object;

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

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

1 ответ

Решение

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

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

MyMXBean proxy = JMX.newMXBeanProxy(ManagementFactory.getPlatformMBeanServer(), new ObjectName("MyMXBeanObjectName"), MyMXBean.class); 
Другие вопросы по тегам