public class MBeanServerInvocationHandler extends Object implements InvocationHandler
InvocationHandler that forwards methods in an MBean's
 management interface through the MBean server to the MBean.
Given an MBeanServerConnection, the ObjectName
 of an MBean within that MBean server, and a Java interface
 Intf that describes the management interface of the
 MBean using the patterns for a Standard MBean or an MXBean, this
 class can be used to construct a proxy for the MBean.  The proxy
 implements the interface Intf such that all of its
 methods are forwarded through the MBean server to the MBean.
If the InvocationHandler is for an MXBean, then the parameters of
 a method are converted from the type declared in the MXBean
 interface into the corresponding mapped type, and the return value
 is converted from the mapped type into the declared type.  For
 example, with the method
 public List<String> reverse(List<String> list);
 and given that the mapped type for List<String> is String[], a call to proxy.reverse(someList) will convert
 someList from a List<String> to a String[],
 call the MBean operation reverse, then convert the returned
 String[] into a List<String>.
The method Object.toString(), Object.hashCode(), or
 Object.equals(Object), when invoked on a proxy using this
 invocation handler, is forwarded to the MBean server as a method on
 the proxied MBean only if it appears in one of the proxy's
 interfaces.  For a proxy created with JMX.newMBeanProxy or JMX.newMXBeanProxy, this means that the method must appear in the
 Standard MBean or MXBean interface.  Otherwise these methods have
 the following behavior:
 
MBeanServerInvocationHandlers was constructed with
 a Class argument then the other must have been constructed
 with the same Class for equals to return true.
 | Constructor and Description | 
|---|
| MBeanServerInvocationHandler(MBeanServerConnection connection,
                            ObjectName objectName)Invocation handler that forwards methods through an MBean
 server to a Standard MBean. | 
| MBeanServerInvocationHandler(MBeanServerConnection connection,
                            ObjectName objectName,
                            boolean isMXBean)Invocation handler that can forward methods through an MBean
 server to a Standard MBean or MXBean. | 
| Modifier and Type | Method and Description | 
|---|---|
| MBeanServerConnection | getMBeanServerConnection()The MBean server connection through which the methods of
 a proxy using this handler are forwarded. | 
| ObjectName | getObjectName()The name of the MBean within the MBean server to which methods
 are forwarded. | 
| Object | invoke(Object proxy,
      Method method,
      Object[] args)Processes a method invocation on a proxy instance and returns
 the result. | 
| boolean | isMXBean()If true, the proxy is for an MXBean, and appropriate mappings
 are applied to method parameters and return values. | 
| static <T> T | newProxyInstance(MBeanServerConnection connection,
                ObjectName objectName,
                Class<T> interfaceClass,
                boolean notificationBroadcaster)Return a proxy that implements the given interface by
 forwarding its methods through the given MBean server to the
 named MBean. | 
public MBeanServerInvocationHandler(MBeanServerConnection connection, ObjectName objectName)
Invocation handler that forwards methods through an MBean
 server to a Standard MBean.  This constructor may be called
 instead of relying on JMX.newMBeanProxy, for instance if you need to supply a
 different ClassLoader to Proxy.newProxyInstance.
This constructor is not appropriate for an MXBean.  Use
 MBeanServerInvocationHandler(MBeanServerConnection,
 ObjectName, boolean) for that.  This constructor is equivalent
 to new MBeanServerInvocationHandler(connection,
 objectName, false).
connection - the MBean server connection through which all
 methods of a proxy using this handler will be forwarded.objectName - the name of the MBean within the MBean server
 to which methods will be forwarded.public MBeanServerInvocationHandler(MBeanServerConnection connection, ObjectName objectName, boolean isMXBean)
Invocation handler that can forward methods through an MBean
 server to a Standard MBean or MXBean.  This constructor may be called
 instead of relying on JMX.newMXBeanProxy, for instance if you need to supply a
 different ClassLoader to Proxy.newProxyInstance.
connection - the MBean server connection through which all
 methods of a proxy using this handler will be forwarded.objectName - the name of the MBean within the MBean server
 to which methods will be forwarded.isMXBean - if true, the proxy is for an MXBean, and
 appropriate mappings will be applied to method parameters and return
 values.public MBeanServerConnection getMBeanServerConnection()
The MBean server connection through which the methods of a proxy using this handler are forwarded.
public ObjectName getObjectName()
The name of the MBean within the MBean server to which methods are forwarded.
public boolean isMXBean()
If true, the proxy is for an MXBean, and appropriate mappings are applied to method parameters and return values.
public static <T> T newProxyInstance(MBeanServerConnection connection, ObjectName objectName, Class<T> interfaceClass, boolean notificationBroadcaster)
Return a proxy that implements the given interface by
 forwarding its methods through the given MBean server to the
 named MBean.  As of 1.6, the methods JMX.newMBeanProxy(MBeanServerConnection, ObjectName, Class) and
 JMX.newMBeanProxy(MBeanServerConnection, ObjectName, Class,
 boolean) are preferred to this method.
This method is equivalent to Proxy.newProxyInstance(interfaceClass.getClassLoader(),
 interfaces, handler).  Here handler is the
 result of new
 MBeanServerInvocationHandler(connection, objectName), and
 interfaces is an array that has one element if
 notificationBroadcaster is false and two if it is
 true.  The first element of interfaces is
 interfaceClass and the second, if present, is
 NotificationEmitter.class.
T - allows the compiler to know that if the interfaceClass parameter is MyMBean.class, for example,
 then the return type is MyMBean.connection - the MBean server to forward to.objectName - the name of the MBean within
 connection to forward to.interfaceClass - the management interface that the MBean
 exports, which will also be implemented by the returned proxy.notificationBroadcaster - make the returned proxy
 implement NotificationEmitter by forwarding its methods
 via connection. A call to NotificationBroadcaster.addNotificationListener(javax.management.NotificationListener, javax.management.NotificationFilter, java.lang.Object) on the proxy will
 result in a call to MBeanServerConnection.addNotificationListener(ObjectName,
 NotificationListener, NotificationFilter, Object), and likewise
 for the other methods of NotificationBroadcaster and NotificationEmitter.JMX.newMBeanProxy(MBeanServerConnection, ObjectName, Class)public Object invoke(Object proxy, Method method, Object[] args) throws Throwable
InvocationHandlerinvoke in interface InvocationHandlerproxy - the proxy instance that the method was invoked onmethod - the Method instance corresponding to
 the interface method invoked on the proxy instance.  The declaring
 class of the Method object will be the interface that
 the method was declared in, which may be a superinterface of the
 proxy interface that the proxy class inherits the method through.args - an array of objects containing the values of the
 arguments passed in the method invocation on the proxy instance,
 or null if interface method takes no arguments.
 Arguments of primitive types are wrapped in instances of the
 appropriate primitive wrapper class, such as
 java.lang.Integer or java.lang.Boolean.null and the interface method's return type is
 primitive, then a NullPointerException will be
 thrown by the method invocation on the proxy instance.  If the
 value returned by this method is otherwise not compatible with
 the interface method's declared return type as described above,
 a ClassCastException will be thrown by the method
 invocation on the proxy instance.Throwable - the exception to throw from the method
 invocation on the proxy instance.  The exception's type must be
 assignable either to any of the exception types declared in the
 throws clause of the interface method or to the
 unchecked exception types java.lang.RuntimeException
 or java.lang.Error.  If a checked exception is
 thrown by this method that is not assignable to any of the
 exception types declared in the throws clause of
 the interface method, then an
 UndeclaredThrowableException containing the
 exception that was thrown by this method will be thrown by the
 method invocation on the proxy instance.UndeclaredThrowableException Submit a bug or feature 
For further API reference and developer documentation, see Java SE Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.
 Copyright © 1993, 2014, Oracle and/or its affiliates.  All rights reserved.