JavaTM Platform
Standard Ed. 6

javax.management
클래스 MBeanServerInvocationHandler

java.lang.Object 
  상위를 확장 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 인터페이스상에 표시될 필요가 있습니다. 그 이외의 경우, 이러한 메소드의 동작은 다음과 같이 됩니다.

도입된 버젼:
1.5

생성자 의 개요
MBeanServerInvocationHandler (MBeanServerConnection  connection, ObjectName  objectName)
          MBean 서버로부터 Standard MBean 에 메소드를 건네주는 호출 핸들러입니다.
MBeanServerInvocationHandler (MBeanServerConnection  connection, ObjectName  objectName, boolean isMXBean)
          MBean 서버로부터 Standard MBean 또는 MXBean 에 메소드를 건네줄 수가 있는 호출 핸들러입니다.
 
메소드의 개요
 MBeanServerConnection getMBeanServerConnection ()
          MBean 서버 접속.
 ObjectName getObjectName ()
          메소드의 전송처의 MBean 서버내의 MBean 의 이름.
 Object invoke (Object  proxy, Method  method, Object [] args)
          프록시 인스턴스로 메소드 호출을 처리해, 그 결과를 돌려줍니다.
 boolean isMXBean ()
          true 의 경우, 프록시는 MXBean 용이며, 적절한 매핑이 메소드 파라미터 및 반환값에 적용됩니다.
static
<T> T
newProxyInstance (MBeanServerConnection  connection, ObjectName  objectName, Class <T> interfaceClass, boolean notificationBroadcaster)
          메소드는 이 MBean 에게 건네지는 지정의 MBean 서버로부터 MBean 에 메소드를 건네주는 것으로, 지정된 인터페이스를 구현하는 프록시를 돌려줍니다.
 
클래스 java.lang. Object 로부터 상속된 메소드
clone , equals , finalize , getClass , hashCode , notify , notifyAll , toString , wait , wait , wait
 

생성자 의 상세

MBeanServerInvocationHandler

public MBeanServerInvocationHandler(MBeanServerConnection  connection,
                                    ObjectName  objectName)

MBean 서버로부터 Standard MBean 에 메소드를 건네주는 호출 핸들러입니다. 이 생성자 은, 예를 들어,Proxy.newProxyInstance 에 다른 ClassLoader 를 건네주는 경우에,JMX.newMBeanProxy 대신에 불려 갑니다.

이 생성자 은, MXBean 에는 적합하지 않습니다. 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 의 이름
isMXBeantrue - 의 경우, 프록시는 MXBean 용이며, 적절한 매핑이 메소드 파라미터와 반환값에 적용된다.
도입된 버젼:
1.6
메소드의 상세

getMBeanServerConnection

public MBeanServerConnection  getMBeanServerConnection()

MBean 서버 접속. 이 핸들러를 사용하는 프록시의 메소드는, 이 접속을 개입시켜 건네받습니다. <반환된 /p>

반환값:
MBean 서버 접속
도입된 버젼:
1.6

getObjectName

public ObjectName  getObjectName()

메소드의 전송처의 MBean 서버내의 MBean 의 이름.

반환값:
객체명
도입된 버젼:
1.6

isMXBean

public boolean isMXBean()

true 의 경우, 프록시는 MXBean 용이며, 적절한 매핑이 메소드 파라미터 및 반환값에 적용됩니다.

반환값:
프록시가 MXBean 용인가 어떤가
도입된 버젼:
1.6

newProxyInstance

public static <T> T newProxyInstance(MBeanServerConnection  connection,
                                     ObjectName  objectName,
                                     Class <T> interfaceClass,
                                     boolean notificationBroadcaster)

메소드는 이 MBean 에게 건네지는 지정의 MBean 서버로부터 MBean 에 메소드를 건네주는 것으로, 지정된 인터페이스를 구현하는 프록시를 돌려줍니다. 1.6 에서는,JMX.newMBeanProxy(MBeanServerConnection, ObjectName, Class)JMX.newMBeanProxy(MBeanServerConnection, ObjectName, Class, boolean) 메소드가, 이 메소드보다 우선됩니다.

이 메소드는 Proxy.newProxyInstance (interfaceClass.getClassLoader(), interfaces, handler) 와 동등합니다. handlernew MBeanServerInvocationHandler(connection, objectName) 의 결과입니다. interfaces 는,notificationBroadcaster 가 false 인 경우에 1 개 요소를 가져, true 인 경우에 2 개 요소를 가지는 배열입니다. interfaces 의 최초의 요소는 interfaceClass, 2 번째의 요소는 NotificationEmitter.class (존재하는 경우)입니다.

형태 파라미터:
T - interfaceClass 파라미터가 MyMXBean.class 일지 어떨지를 컴파일러에 알린다. 이 파라미터가 MyMBean.class 이면, 반환값의 형태는 MyMBean 가 되는
파라미터:
connection - 송신지의 MBean 서버
objectName - connection 내에서 건네받는다 MBean 의 이름
interfaceClass - MBean 가 export 한다 관리 인터페이스. 이것도 반환되는 프록시에 의해 구현되는
notificationBroadcaster - connection 경유로 메소드를 건네주는 것으로, 반환된 프록시에 NotificationEmitter 를 구현시킨다. 프록시에서의 NotificationBroadcaster.addNotificationListener(javax.management.NotificationListener, javax.management.NotificationFilter, java.lang.Object) 의 호출에 의해, MBeanServerConnection.addNotificationListener(ObjectName, NotificationListener, NotificationFilter, Object) 에의 호출이 실행된다. NotificationBroadcasterNotificationEmitter 의 그 외의 메소드에 대해서도 같이
반환값:
새로운 프록시의 인스턴스
관련 항목:
JMX.newMBeanProxy(MBeanServerConnection, ObjectName, Class)

invoke

public Object  invoke(Object  proxy,
                     Method  method,
                     Object [] args)
              throws Throwable 
인터페이스 InvocationHandler 의 기술:
프록시 인스턴스로 메소드 호출을 처리해, 그 결과를 돌려줍니다. 관련한 프록시 인스턴스로 메소드가 불려 가면(자), 이 메소드는 호출해 핸들러로 불려 갑니다.

정의:
인터페이스 InvocationHandler 내의 invoke
파라미터:
proxy - 메소드가 불려 가는 프록시 인스턴스
method - 프록시 인스턴스로 불려 가는 인터페이스 메소드에 대응하는 Method 인스턴스. Method 객체의 선언 클래스는, 이 메소드가 선언된 인터페이스이며, 프록시 클래스가 메소드를 상속하는 프록시 인터페이스의 슈퍼 인터페이스도 있는
args - 프록시 인스턴스에서의 메소드 호출시에게 건네지는 인수치를 포함하는 객체 배열. 인터페이스 메소드가 인수를 취하지 않는 경우,null 가 된다. 원시형 인수는 java.lang.Integer 또는 java.lang.Boolean 와 같이 적절한 원시형 래퍼 클래스의 인스턴스에 랩 된다
반환값:
프록시 인스턴스에서의 메소드 호출로부터의 반환값. 인터페이스 메소드의 선언된 반환값의 형태가 원시형의 경우는, 이 메소드의 반환값은 대응하는 프리미티브(primitive) 래퍼 클래스의 인스턴스가 아니면 안된다. 그렇지 않은 경우, 선언된 반환값의 형태에 할당할 수 있는 형태가 아니면 안된다. 이 메소드에 의한 반환값이 null 로, 인터페이스 메소드의 반환값이 원시형의 경우, 프록시 인스턴스에서의 메소드 호출에 의해 NullPointerException 가 throw 된다. 이외의 케이스로, 이 메소드의 반환값과 상기와 같은 인터페이스 메소드의 선언된 반환값의 형태와의 사이에 호환성이 없는 경우,ClassCastException 은 프록시 인스턴스에서의 메소드 호출에 의해 throw 되게 된다
예외:
Throwable - 프록시 인스턴스에서의 메소드 호출로부터 throw 되는 예외. 이 예외의 타입은, 인터페이스 메소드의 throws 절에 선언되는 예외 타입인가, 또는, 체크되지 않는 예외 타입의 java.lang.RuntimeException 또는 java.lang.Error 에 할당할 수 없으면 안 된다. 이 메소드에 의해 throw 되는 체크 예외가, 인터페이스 메소드의 throws 절에 선언된 예외 타입에 할당할 수 없는 경우, 이 메소드가 throw 한 예외를 포함하는 UndeclaredThrowableException 가 프록시 인스턴스에서의 메소드 호출에 의해 throw 되게 되는
관련 항목:
UndeclaredThrowableException

JavaTM Platform
Standard Ed. 6

버그의 보고와 기능의 요청
한층 더 자세한 API 레퍼런스 및 개발자 문서에 대해서는,Java SE 개발자용 문서를 참조해 주세요. 개발자전용의 상세한 해설, 개념의 개요, 용어의 정의, 버그의 회피책, 및 코드 실례가 포함되어 있습니다.

Copyright 2006 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms . Documentation Redistribution Policy 도 참조해 주세요.