- すべての実装されたインタフェース:
- 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)の呼び出しはsomeListをList<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(MBeanServerConnection connection, ObjectName objectName)MBeanサーバーからStandard MBeanにメソッドを渡す呼出しハンドラです。MBeanServerInvocationHandler(MBeanServerConnection connection, ObjectName objectName, boolean isMXBean)MBeanサーバーからStandard MBeanまたはMXBeanにメソッドを渡すことができる呼出しハンドラです。
- 
メソッドのサマリー修飾子と型 メソッド 説明 MBeanServerConnectiongetMBeanServerConnection()MBeanサーバー接続。このハンドラを使用するプロキシのメソッドは、この接続を介して渡されます。ObjectNamegetObjectName()メソッドの転送先のMBeanサーバー内のMBeanの名前。booleanisMXBean()trueの場合、プロキシはMXBean用であり、適切なマッピングがメソッド・パラメータおよび戻り値に適用されます。static <T> TnewProxyInstance(MBeanServerConnection connection, ObjectName objectName, Class<T> interfaceClass, boolean notificationBroadcaster)指定されたMBeanサーバーから指定されたMBeanへメソッドを渡すことにより、指定されたインタフェースを実装するプロキシを返します。
- 
コンストラクタの詳細- 
MBeanServerInvocationHandlerpublic 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の名前。
 
- 
MBeanServerInvocationHandlerpublic 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
 
 
- 
- 
メソッドの詳細- 
getMBeanServerConnectionpublic MBeanServerConnection getMBeanServerConnection()MBeanサーバー接続。このハンドラを使用するプロキシのメソッドは、この接続を介して渡されます。 - 戻り値:
- MBeanサーバー接続。
- 導入されたバージョン:
- 1.6
 
- 
getObjectNamepublic ObjectName getObjectName()メソッドの転送先のMBeanサーバー内のMBeanの名前。 - 戻り値:
- オブジェクト名
- 導入されたバージョン:
- 1.6
 
- 
isMXBeanpublic boolean isMXBean()trueの場合、プロキシはMXBean用であり、適切なマッピングがメソッド・パラメータおよび戻り値に適用されます。 - 戻り値:
- プロキシがMXBean用かどうか。
- 導入されたバージョン:
- 1.6
 
- 
newProxyInstancepublic static <T> T newProxyInstance(MBeanServerConnection connection, ObjectName objectName, Class<T> interfaceClass, boolean notificationBroadcaster)指定されたMBeanサーバーから指定されたMBeanへメソッドを渡すことにより、指定されたインタフェースを実装するプロキシを返します。 1.6以降は、 JMX.newMBeanProxy(MBeanServerConnection, ObjectName, Class)およびJMX.newMBeanProxy(MBeanServerConnection, ObjectName, Class, boolean)メソッドが、このメソッドよりも優先されます。このメソッドは、 Proxy.newProxyInstance(interfaceClass.getClassLoader(), interfaces, handler)と同等です。handlerはnew MBeanServerInvocationHandler(connection, objectName)の結果です。interfacesは、notificationBroadcasterがfalseである場合に1つ要素を持ち、trueである場合に2つ要素を持つ配列です。interfacesの最初の要素はinterfaceClass、2番目の要素はNotificationEmitter.class(存在する場合)です。- 型パラメータ:
- T- たとえば、- interfaceClassパラメータが- MyMBean.classであれば、戻り値の型は- MyMBeanになることをコンパイラに知らせる。
- パラメータ:
- connection- 送信先のMBeanサーバー。
- objectName-- connection内で渡されるMBeanの名前。
- interfaceClass- MBeanがエクスポートする管理インタフェース。これも返されるプロキシにより実装される。
- notificationBroadcaster-- connection経由でメソッドを渡すことにより、返されたプロキシに- NotificationEmitterを実装させる。 このプロキシ上で- NotificationBroadcaster.addNotificationListener(javax.management.NotificationListener, javax.management.NotificationFilter, java.lang.Object)を呼び出すと、- MBeanServerConnection.addNotificationListener(ObjectName, NotificationListener, NotificationFilter, Object)が呼び出される。- NotificationBroadcasterおよび- NotificationEmitterのその他のメソッドの場合も同様。
- 戻り値:
- 新しいプロキシのインスタンス。
- 関連項目:
- JMX.newMBeanProxy(MBeanServerConnection, ObjectName, Class, boolean)
 
 
-