|
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 도 참조해 주세요.