Spec-Zone .ru
спецификации, руководства, описания, API
|
public class MBeanServerInvocationHandler extends Object implements InvocationHandler
InvocationHandler
это вперед методы в интерфейсе управления MBEAN через сервер MBean к MBean.
Данный MBeanServerConnection
, ObjectName
из MBean в пределах этого сервер MBean, и интерфейс Java Intf
это описывает интерфейс управления MBean использование образцов для Стандартного MBean или MXBean, этот класс может использоваться, чтобы создать прокси для MBean. Прокси реализует интерфейс Intf
так, что все его методы передаются через сервер MBean MBean.
Если InvocationHandler
для MXBean, тогда параметры метода преобразовываются из типа, объявленного в интерфейсе MXBean в соответствующий отображенный тип, и возвращаемое значение преобразовывается из отображенного типа в объявленный тип. Например, с методом
public List<String> reverse(List<String> list);
и, учитывая, что отображенный тип для List<String>
String[]
, звонок proxy.reverse(someList)
преобразует someList
от a List<String>
к a String[]
, вызовите работу MBean reverse
, тогда преобразуйте возвращенный String[]
в a List<String>
.
Метод Object.toString (), Object.hashCode (), или Object.equals (Объект), когда вызвано на прокси, используя этот обработчик вызова, передается серверу MBean как метод на проксированном MBean, только если это появляется в одном из интерфейсов прокси. Для прокси, создаваемого с JMX.newMBeanProxy
или JMX.newMXBeanProxy
, это означает, что метод должен появиться в Стандартном MBean или интерфейсе MXBean. Иначе у этих методов есть следующее поведение:
MBeanServerInvocationHandler
s был создан с a Class
параметр тогда другой, должно быть, был создан с тем же самым Class
для equals
возвращать true. Конструктор и Описание |
---|
MBeanServerInvocationHandler(MBeanServerConnection connection, ObjectName objectName)
Обработчик вызова, что вперед методы через сервер MBean к Стандартному MBean.
|
MBeanServerInvocationHandler(MBeanServerConnection connection, ObjectName objectName, boolean isMXBean)
Обработчик вызова, который может передать методы через сервер MBean к Стандартному MBean или MXBean.
|
Модификатор и Тип | Метод и Описание |
---|---|
MBeanServerConnection |
getMBeanServerConnection()
Соединение сервера MBean, через которое передаются методы прокси, используя этот обработчик.
|
ObjectName |
getObjectName()
Имя MBean в пределах сервера MBean, которому передаются методы.
|
Объект |
invoke(Object proxy, Method method, Object[] args)
Обрабатывает вызов метода на экземпляре прокси и возвращает результат.
|
boolean |
isMXBean()
Если это правда, прокси для MXBean, и соответствующие отображения применяются к параметрам метода и возвращаемым значениям.
|
static <T> T |
newProxyInstance(MBeanServerConnection connection, ObjectName objectName, Class<T> interfaceClass, boolean notificationBroadcaster)
Возвратите прокси, который реализует данный интерфейс, передавая его методы через данный сервер MBean к именованному MBean.
|
public MBeanServerInvocationHandler(MBeanServerConnection connection, ObjectName objectName)
Обработчик вызова, что вперед методы через сервер MBean к Стандартному MBean. Этого конструктора можно вызвать вместо доверия JMX.newMBeanProxy
, например, если Вы должны предоставить различное ClassLoader
к Proxy.newProxyInstance
.
Этот конструктор не является подходящим для MXBean. Использовать MBeanServerInvocationHandler(MBeanServerConnection, ObjectName, boolean)
для этого. Этот конструктор эквивалентен new MBeanServerInvocationHandler(connection, objectName, false)
.
connection
- соединение сервера MBean, через которое будут переданы все методы прокси, используя этот обработчик.objectName
- имя MBean в пределах сервера MBean, которому будут переданы методы.public MBeanServerInvocationHandler(MBeanServerConnection connection, ObjectName objectName, boolean isMXBean)
Обработчик вызова, который может передать методы через сервер MBean к Стандартному MBean или MXBean. Этого конструктора можно вызвать вместо доверия JMX.newMXBeanProxy
, например, если Вы должны предоставить различное ClassLoader
к Proxy.newProxyInstance
.
connection
- соединение сервера MBean, через которое будут переданы все методы прокси, используя этот обработчик.objectName
- имя MBean в пределах сервера MBean, которому будут переданы методы.isMXBean
- если это правда, прокси для MXBean
, и соответствующие отображения будут применены к параметрам метода и возвращаемым значениям.public MBeanServerConnection getMBeanServerConnection()
Соединение сервера MBean, через которое передаются методы прокси, используя этот обработчик.
public ObjectName getObjectName()
Имя MBean в пределах сервера MBean, которому передаются методы.
public boolean isMXBean()
Если это правда, прокси для MXBean, и соответствующие отображения применяются к параметрам метода и возвращаемым значениям.
public 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
ложь и два, если это - истина. Первый элемент interfaces
interfaceClass
и второе, если есть NotificationEmitter.class
.
T
- позволяет компилятору знать это если interfaceClass
параметр MyMBean.class
, например, тогда тип возврата MyMBean
.connection
- сервер MBean, чтобы передать.objectName
- имя MBean в пределах connection
передать.interfaceClass
- интерфейс управления, который экспортирует MBean, который будет также реализован возвращенным прокси.notificationBroadcaster
- сделайте возвращенную реализацию прокси NotificationEmitter
передавая его методы через connection
. Звонок NotificationBroadcaster.addNotificationListener(javax.management.NotificationListener, javax.management.NotificationFilter, java.lang.Object)
на прокси приведет к звонку MBeanServerConnection.addNotificationListener(ObjectName, NotificationListener, NotificationFilter, Object)
, и аналогично для других методов NotificationBroadcaster
и NotificationEmitter
.JMX.newMBeanProxy(MBeanServerConnection, ObjectName, Class)
public Object invoke(Object proxy, Method method, Object[] args) throws Throwable
InvocationHandler
invoke
в интерфейсе InvocationHandler
proxy
- экземпляр прокси, на который был вызван методmethod
- Method
экземпляр, соответствующий интерфейсному методу, вызывается на экземпляр прокси. Класс объявления Method
объект будет интерфейсом, в котором был объявлен метод, который может быть суперинтерфейсом интерфейса прокси, что прокси-класс наследовал метод через.args
- массив объектов, содержащих значения параметров, которые передают в вызове метода экземпляру прокси, или null
если интерфейсный метод не берет параметров. Параметры типов примитивов обертываются в экземпляры соответствующего примитивного класса обертки, такой как java.lang.Integer
или java.lang.Boolean
.null
и тип возврата интерфейсного метода примитивен, тогда a NullPointerException
будет брошен вызовом метода на экземпляре прокси. Если значение, возвращенное этим методом, является иначе не совместимым с объявленным типом возврата интерфейсного метода как описано выше, a ClassCastException
будет брошен вызовом метода на экземпляре прокси.Throwable
- исключение, чтобы бросить от вызова метода на экземпляре прокси. Тип исключения должен быть присваиваемым любой любому из типов исключения, объявленных в throws
пункт интерфейсного метода или к типам исключения непроверенным java.lang.RuntimeException
или java.lang.Error
. Если проверенное исключение выдается этим методом, который не присваиваем любому из типов исключения, объявленных в throws
пункт интерфейсного метода, затем UndeclaredThrowableException
содержа исключение, которое было выдано этим методом, будет брошен вызовом метода на экземпляре прокси.UndeclaredThrowableException
Для дальнейшей ссылки API и документации разработчика, см.
Авторское право © 1993, 2011, Oracle и/или его филиалы. Все права защищены.