【问题标题】:JMX MXBean enum handling conversion errorsJMX MXBean 枚举处理转换错误
【发布时间】:2011-09-07 23:51:28
【问题描述】:

当在 MXBean 中使用枚举作为 Map 的值组件时,我似乎在转换枚举时遇到了困难。

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");

我在这种情况下收到的异常是(编辑:已经意识到这个异常是由于 tabularDataSupport 期望 Object[] 作为关键参数。)

java.lang.String 不能转换为 [Ljava.lang.Object;

所以我的问题是,我是否理解枚举类型在使用 JMX 代理时应该隐式转换不正确,还是我在提取信息方面遗漏了什么?

假定代理应该代表原始接口,代理调用是否应该与接口调用相同?

【问题讨论】:

    标签: java enums jmx mbeans


    【解决方案1】:

    问题在于您选择的是 MBean 代理而不是 MXBean 代理。

    尝试使用

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

    【讨论】:

      猜你喜欢
      • 2016-02-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多