|
JavaTM Platform Standard Ed. 6 |
|||||||||
| 앞의 클래스 다음의 클래스 | 프레임 있어 프레임 없음 | |||||||||
| 개요: 상자 | 필드 | 생성자 | 메소드 | 상세: 필드 | 생성자 | 메소드 | |||||||||
java.lang.Objectjavax.management.MBeanServerInvocationHandler
public class MBeanServerInvocationHandler
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 인터페이스상에 표시될 필요가 있습니다. 그 이외의 경우, 이러한 메소드의 동작은 다음과 같이 됩니다.
MBeanServerInvocationHandler 중 한쪽이 Class 인수를 사용해 구축되었을 경우,equals 가 true 를 돌려주기 위해서(때문에)는, 그 이외가 같은 Class 를 사용해 구축되고 있을 필요가 있습니다.
| 생성자 의 개요 | |
|---|---|
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
|
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 |
| 생성자 의 상세 |
|---|
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 의 이름
public MBeanServerInvocationHandler(MBeanServerConnection connection,
ObjectName objectName,
boolean isMXBean)
MBean 서버로부터 Standard MBean 또는 MXBean 에 메소드를 건네줄 수가 있는 호출 핸들러입니다. 이 생성자 은, 예를 들어,Proxy.newProxyInstance 에 다른 ClassLoader 를 건네주는 경우에,JMX.newMXBeanProxy 대신에 불려 갑니다.
connection - MBean 서버 접속. 이것을 개입시켜,
이 핸들러를 사용하는 프록시의 메소드가 모두 건네받는objectName - 메소드가 건네받는 MBean 서버 내부의
MBean 의 이름isMXBeantrue - 의 경우, 프록시는 MXBean 용이며, 적절한 매핑이 메소드 파라미터와 반환값에 적용된다. | 메소드의 상세 |
|---|
public MBeanServerConnection getMBeanServerConnection()
MBean 서버 접속. 이 핸들러를 사용하는 프록시의 메소드는, 이 접속을 개입시켜 건네받습니다. <반환된 /p>
public ObjectName getObjectName()
메소드의 전송처의 MBean 서버내의 MBean 의 이름.
public boolean isMXBean()
true 의 경우, 프록시는 MXBean 용이며, 적절한 매핑이 메소드 파라미터 및 반환값에 적용됩니다.
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) 와 동등합니다. handler 는 new 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) 에의 호출이 실행된다.
NotificationBroadcaster 및 NotificationEmitter 의 그 외의 메소드에 대해서도 같이
JMX.newMBeanProxy(MBeanServerConnection, ObjectName, Class)
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 와 같이 적절한 원시형 래퍼 클래스의 인스턴스에 랩 된다
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 |
|||||||||
| 앞의 클래스 다음의 클래스 | 프레임 있어 프레임 없음 | |||||||||
| 개요: 상자 | 필드 | 생성자 | 메소드 | 상세: 필드 | 생성자 | 메소드 | |||||||||
Copyright 2006 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms . Documentation Redistribution Policy 도 참조해 주세요.