モジュール java.management
パッケージ javax.management

クラスMBeanServerInvocationHandler

  • すべての実装されたインタフェース:
    InvocationHandler

    public class MBeanServerInvocationHandler
    extends Object
    implements InvocationHandler

    MBeanの管理インタフェースに含まれるメソッドをMBeanサーバー経由でMBeanに転送するInvocationHandlerです。

    MBeanServerConnection、そのMBeanサーバー内のMBeanのObjectName、およびStandard MBeanやMXBeanのパターンを使用するMBeanの管理インタフェースを記述するJavaインタフェースIntfにより、このクラスを使ってMBeanのプロキシを構築できます。 プロキシは、すべてのメソッドがMBeanサーバーからMBeanへ渡されるように、Intfインタフェースを実装します。

    InvocationHandlerがMXBean用である場合、メソッドのパラメータが、MXBeanインタフェース内で宣言された型から対応するマップされた型に変換され、戻り値が、マップされた型から宣言された型に変換されます。 例えば、このメソッド
    public List<String> reverse(List<String> list);
    List<String>のマップされた型が String[]である場合、proxy.reverse(someList)の呼び出しはsomeListList<String>からString[]に変換し、MBean操作reverseを呼び出し、返されたString[]List<String>に変換します。

    Object.toString()、Object.hashCode()、またはObject.equals(Object)メソッドが、この呼出しハンドラを使ってプロキシ上で呼び出されると、そのメソッドがプロキシのインタフェースのいずれかに表示される場合のみ、プロキシ対象のMBean上のメソッドとしてMBeanサーバーに渡されます。 JMX.newMBeanProxyまたはJMX.newMXBeanProxyを使用して作成されたプロキシの場合、メソッドはStandard MBeanまたはMXBeanインタフェース上に表示される必要があります。 それ以外の場合、これらのメソッドの動作は次のようになります。

    • toString()はプロキシの文字列表現を返します。
    • hashCode()は、2つの同等のプロキシが同じハッシュ・コードを持つように、プロキシのハッシュ・コードを返します。
    • equals(Object)は、Object引数がこのプロキシと同じプロキシ・クラスのものである場合にのみtrueを返します。その際、同じMBeanServerConnectionおよびObjectNameを持つMBeanServerInvocationHandlerを使用します。MBeanServerInvocationHandlerのいずれかがClass引数を使って構築された場合、equalsがtrueを返すためには、それ以外が同じClassを使って構築されている必要があります。
    導入されたバージョン:
    1.5
    • コンストラクタの詳細

      • MBeanServerInvocationHandler

        public MBeanServerInvocationHandler​(MBeanServerConnection connection,
                                            ObjectName objectName)

        MBeanサーバーからStandard MBeanにメソッドを渡す呼出しハンドラです。 このコンストラクタは、たとえば、Proxy.newProxyInstanceへ異なったClassLoaderを渡す場合に、JMX.newMBeanProxyの代わりに呼び出されます。

        このコンストラクタは、MXBeanには適していません。 それには、MBeanServerInvocationHandler(MBeanServerConnection, ObjectName, boolean)を使用してください。 このコンストラクタはnew MBeanServerInvocationHandler(connection, objectName, false)と同等です。

        パラメータ:
        connection - MBeanサーバー接続。これを介して、このハンドラを使用するプロキシのメソッドがすべて渡される。
        objectName - メソッドが渡されるMBeanサーバー内部のMBeanの名前。
      • MBeanServerInvocationHandler

        public MBeanServerInvocationHandler​(MBeanServerConnection connection,
                                            ObjectName objectName,
                                            boolean isMXBean)

        MBeanサーバーからStandard MBeanまたはMXBeanにメソッドを渡すことができる呼出しハンドラです。 このコンストラクタは、たとえば、Proxy.newProxyInstanceへ異なったClassLoaderを渡す場合に、JMX.newMXBeanProxyの代わりに呼び出されます。

        パラメータ:
        connection - MBeanサーバー接続。これを介して、このハンドラを使用するプロキシのメソッドがすべて渡される。
        objectName - メソッドが渡されるMBeanサーバー内部のMBeanの名前。
        isMXBean - trueの場合、プロキシはMXBean用であり、適切なマッピングがメソッド・パラメータと戻り値に適用される。
        導入されたバージョン:
        1.6