0

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

この状況で私が受け取っている例外は次のとおりです(編集:この例外は、tabularDataSupportがKeyパラメーターとしてObject []を予期しているという事実によるものであることに気づきました)。

java.lang.Stringを[Ljava.lang.Object;にキャストすることはできません。

だから私が持っている質問は、JMXプロキシを使用するときに列挙型が暗黙的に変換されるべきであるという私の理解ですか、それとも情報の抽出に関して何かが欠けていますか?

プロキシが元のインターフェイスを表すことになっている場合、プロキシの呼び出しはインターフェイスの呼び出しと同じである必要がありますか?

4

1 に答える 1

1

問題は、MXBeanプロキシではなくMBeanプロキシを選択していることです。

使ってみてください

MyMXBean proxy = JMX.newMXBeanProxy(ManagementFactory.getPlatformMBeanServer(), new ObjectName("MyMXBeanObjectName"), MyMXBean.class); 
于 2011-09-08T00:51:16.130 に答える