|
JavaTM 2 Platform Standard Ed. 5.0 |
|||||||||
| ÀÌÀü Ŭ·¡½º ´ÙÀ½ Ŭ·¡½º | ÇÁ·¹ÀÓÀ¸·Î ÇÁ·¹ÀÓ ¾øÀÌ | |||||||||
| °³¿ä: NESTED | Çʵå | constructor | ¸Þ¼µå | »ó¼¼: Çʵå | »ý¼ºÀÚ | ¸Þ¼µå | |||||||||
java.lang.Objectjavax.management.MBeanServerInvocationHandler
public class MBeanServerInvocationHandler
MBean
°ü¸® ÀÎÅÍÆäÀ̽º³»¿¡¼
MBean ¼¹ö·ÎºÎÅÍ MBean¿¡ ¸Þ¼µå¸¦ °Ç³×ÁÖ´Â InvocationHandler ÀÔ´Ï´Ù.
MBeanServerConnection,
±× MBean ¼¹ö³»ÀÇ MBean ObjectName ¹× Standard MBean
ÆÐÅÏÀ» »ç¿ëÇÏ´Â MBean
°ü¸® ÀÎÅÍÆäÀ̽º¸¦ ±â¼úÇÏ´Â Java ÀÎÅÍÆäÀ̽º Intf¿¡
ÀÇÇØ ÀÌ Å¬·¡½º¸¦ »ç¿ëÇØ MBean
ÇÁ·Ï½Ã¸¦ ±¸ÃàÇÒ ¼ö ÀÖ½À´Ï´Ù. ÇÁ·Ï½Ã´Â ¸ðµç ¸Þ¼µå°¡ MBean ¼¹ö·ÎºÎÅÍ MBean¿¡ °Ç³×¹Þµµ·Ï, IntfÀÎÅÍÆäÀ̽º¸¦ ±¸ÇöÇÕ´Ï´Ù.
MBean ¼¹ö mbs¿¡ ObjectName name¸¦ °¡Áö´Â MBean°¡ Æ÷ÇԵǾî ÀÖ¾î, MBean
°ü¸® ÀÎÅÍÆäÀ̽º°¡ Java ÀÎÅÍÆäÀ̽º Intf¿¡ ÀÇÇØ ±â¼úµÇ°í ÀÖ´Â °æ¿ì´Â ´ÙÀ½°ú °°ÀÌÀÇÇØ MBean
ÇÁ·Ï½Ã¸¦ ±¸ÃàÇÒ ¼ö ÀÖ½À´Ï´Ù.
Intf proxy = (Intf)
MBeanServerInvocationHandler. newProxyInstance (mbs,
name,
Intf.class,
false);
Intf´Â
´ÙÀ½°ú °°ÀÌ µË´Ï´Ù.
public interface Intf {
public String getSomeAttribute();
public void setSomeAttribute(String value);
public void someOperation(String param1, int param2);
}
À̰ÍÀ¸·Î ´ÙÀ½ÀÇ ³»¿ëÀ» ½ÇÇàÇÒ ¼ö ÀÖ½À´Ï´Ù.
proxy.getSomeAttribute() - mbs. getAttribute (name, "SomeAttribute")¸¦ È£ÃâÇÑ´Ù
proxy.getSomeAttribute() - mbs. getAttribute (name, "SomeAttribute")À» È£ÃâÇÑ´Ù
proxy.someOperation("param1", 2) - mbs. invoke (name, "someOperation", <etc>)
È£Ãâ¿¡ º¯È¯µÈ´Ù
newProxyInstance
¸¶Áö¸· ÆÄ¶ó¹ÌÅͰ¡ trueÀÎ °æ¿ì, MBean´Â NotificationBroadcaster ¶Ç´Â NotificationEmitter ¶ó°í º¸¿©Á®NotificationEmitter¸¦
±¸ÇöÇÏ´Â ÇÁ·Ï½Ã°¡ ¸®Åϵ˴ϴÙ
. ÀÌ ÇÁ·Ï½Ã»ó¿¡¼ NotificationBroadcaster.addNotificationListener(javax.management.NotificationListener, javax.management.NotificationFilter, java.lang.Object)¸¦
È£ÃâÇϸé, MBeanServerConnection.addNotificationListener(ObjectName, NotificationListener, NotificationFilter, Object) °¡ È£ÃâµË´Ï´Ù. NotificationBroadcaster ¹× NotificationEmitter
±× ¿ÜÀÇ ¸Þ¼µåÀÇ °æ¿ìµµ °°½À´Ï´Ù.
ÀÌ È£Ãâ Çڵ鷯¿¡ÀÇÇØ ÇÁ·Ï½Ã»ó¿¡¼ Object.toString(),
Object.hashCode() ¹× Object.equals(Object) ¸Þ¼µå¸¦ È£ÃâÇϸé, À̰͵éÀº À§ÀÓµÈ MBean »óÀÇ ¸Þ¼µå·Î¼ MBean ¼¹ö¿¡°Ô °Ç³×Áý´Ï´Ù. ´Ù¸¸, ÀÌ ¶§¹®¿¡´Â MBean
°ü¸® ÀÎÅÍÆäÀ̽º¿¡ ÀÌ·¯ÇÑ ¸Þ¼µå°¡ ¼±¾ðµÇ°í ÀÖÀ» Çʿ䰡 ÀÖ½À´Ï´Ù.
| »ý¼ºÀÚ °³¿ä | |
|---|---|
MBeanServerInvocationHandler (MBeanServerConnection connection,
ObjectName objectName)
¸Þ¼µå¸¦ MBean ¼¹ö·ÎºÎÅÍ ¼Û½ÅÇϴ ȣÃâ Çڵ鷯ÀÔ´Ï´Ù. |
|
| ¸Þ¼µå °³¿ä | |
|---|---|
Object |
invoke (Object proxy,
Method method,
Object [] args)
ÇÁ·Ï½Ã ÀνºÅϽº·Î ¸Þ¼µå È£ÃâÀ» ó¸®ÇØ, ±× °á°ú¸¦ ¸®ÅÏÇÕ´Ï´Ù. |
static Object |
newProxyInstance (MBeanServerConnection connection,
ObjectName objectName,
Class interfaceClass,
boolean notificationBroadcaster)
ÁöÁ¤ÀÇ MBean ¼¹ö·ÎºÎÅÍ MBean¿¡ ¸Þ¼µå¸¦ °Ç³×ÁÖ´Â °ÍÀ¸·Î ÁöÁ¤µÈ ÀÎÅÍÆäÀ̽º¸¦ ±¸ÇöÇÏ´Â ÇÁ·Ï½Ã¸¦ ¸®ÅÏÇÕ´Ï´Ù. |
| Ŭ·¡½º java.lang. Object ·ÎºÎÅÍ »ó¼ÓµÈ ¸Þ¼µå |
|---|
clone,
equals,
finalize,
getClass,
hashCode,
notify,
notifyAll,
toString,
wait,
wait,
wait |
| »ý¼ºÀÚ »ó¼¼ |
|---|
public MBeanServerInvocationHandler(MBeanServerConnection connection,
ObjectName objectName)
¸Þ¼µå¸¦ MBean ¼¹ö·ÎºÎÅÍ ¼Û½ÅÇϴ ȣÃâ Çڵ鷯ÀÔ´Ï´Ù. ÀÌ »ý¼ºÀÚ´Â ¿¹¸¦ µé¾î, Proxy.newProxyInstance¿¡ ´Ù¸¥ ClassLoader¸¦
°Ç³×ÁÖ°í ½ÍÀº °æ¿ì¿¡
newProxyInstance(javax.management.MBeanServerConnection, javax.management.ObjectName, java.lang.Class, boolean) ´ë½Å¿¡ È£ÃâÇÕ´Ï´Ù.
connection - MBean ¼¹ö Á¢¼Ó. ÀÌ Çڵ鷯¸¦ »ç¿ëÇÏ´Â ÇÁ·Ï½ÃÀÇ ¸ðµç ¸Þ¼µå´Â ÀÌ Á¢¼ÓÀ» °³ÀÔ½ÃÄÑ °Ç³×¹Þ´ÂobjectName - MBean ¼¹ö³»ÀÇ MBean
À̸§. ¸Þ¼µå´Â ÀÌ MBean ¿¡°Ô °Ç³×Áø´Ù| ¸Þ¼µåÀÇ »ó¼¼ |
|---|
public static Object newProxyInstance(MBeanServerConnection connection,
ObjectName objectName,
Class interfaceClass,
boolean notificationBroadcaster)
ÁöÁ¤ÀÇ MBean ¼¹ö·ÎºÎÅÍ MBean¿¡ ¸Þ¼µå¸¦ °Ç³×ÁÖ´Â °ÍÀ¸·Î ÁöÁ¤µÈ ÀÎÅÍÆäÀ̽º¸¦ ±¸ÇöÇÏ´Â ÇÁ·Ï½Ã¸¦ ¸®ÅÏÇÕ´Ï´Ù.
ÀÌ ¸Þ¼µå´Â Proxy.newProxyInstance (interfaceClass.getClassLoader(), interfaces, handler)¿Í
µ¿µîÇÕ´Ï´Ù. handler´Â new MBeanServerInvocationHandler(connection, objectName)
°á°úÀÔ´Ï´Ù. interfaces´Â
notificationBroadcaster°¡ false ÀÎ °æ¿ì¿¡ 1°³
¿ä¼Ò¸¦ °¡Á®, true ÀÎ °æ¿ì¿¡ 2°³
¿ä¼Ò¸¦ °¡Áö´Â ¹è¿ÀÔ´Ï´Ù. interfaces
ÃÖÃÊÀÇ ¿ä¼Ò´Â interfaceClass, 2¹øÂ°ÀÇ ¿ä¼Ò´Â NotificationEmitter.class (Á¸ÀçÇÏ´Â °æ¿ì)ÀÔ´Ï´Ù.
connection - ¼Û½ÅÁöÀÇ MBean ¼¹öobjectName - connection ³»¿¡¼ °Ç³×¹Þ´Â MBean
À̸§interfaceClass - MBean°¡ export ÇÏ´Â °ü¸® ÀÎÅÍÆäÀ̽º. ¸®ÅϵÈ
ÇÁ·Ï½Ãµµ, À̰ÍÀ» ±¸ÇöÇÏ´ÂnotificationBroadcaster - connection·Î
ºÎÅÍ ¸Þ¼µå¸¦ ¼Û½ÅÇÏ´Â °ÍÀ¸·Î½á, ¸®ÅϵÈ
ÇÁ·Ï½Ã¿¡ NotificationEmitter¸¦
±¸Çö½ÃŲ´Ù
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 - ÇÁ·Ï½Ã ÀνºÅϽº¿¡¼ÀÇ ¸Þ¼µå È£Ãâ·ÎºÎÅÍ ¹ß»ýµÇ´Â ¿¹¿Ü. ÀÌ ¿¹¿ÜÀÇ Å¸ÀÔÀº ÀÎÅÍÆäÀ̽º ¸Þ¼µåÀÇ throws Àý¿¡ ¼±¾ðµÇ´Â ¿¹¿Ü ŸÀÔÀΰ¡ ¶Ç´Â üũµÇÁö ¾Ê´Â ¿¹¿Ü ŸÀÔÀÇ java.lang.RuntimeException ¶Ç´Â java.lang.Error¿¡ ÇÒ´çÇÒ ¼ö ¾øÀ¸¸é ¾È µÈ´Ù. ÀÌ ¸Þ¼µå¿¡ ÀÇÇØ ¹ß»ýµÇ´Â üũ ¿¹¿Ü°¡ ÀÎÅÍÆäÀ̽º ¸Þ¼µåÀÇ throws Àý¿¡ ¼±¾ðµÈ ¿¹¿Ü ŸÀÔ¿¡ ÇÒ´çÇÒ ¼ö ¾ø´Â °æ¿ì, ÀÌ ¸Þ¼µå°¡ Throw ÇÑ ¿¹¿Ü¸¦ Æ÷ÇÔÇÏ´Â UndeclaredThrowableExceptionÀÌ ÇÁ·Ï½Ã ÀνºÅϽº¿¡¼ÀÇ ¸Þ¼µå È£Ãâ¿¡ ÀÇÇØ Throw µÇ°Ô µÇ´ÂUndeclaredThrowableException
|
JavaTM 2 Platform Standard Ed. 5.0 |
|||||||||
| ÀÌÀü Ŭ·¡½º ´ÙÀ½ Ŭ·¡½º | ÇÁ·¹ÀÓÀ¸·Î ÇÁ·¹ÀÓ ¾øÀÌ | |||||||||
| °³¿ä: NESTED | Çʵå | constructor | ¸Þ¼µå | »ó¼¼: Çʵå | »ý¼ºÀÚ | ¸Þ¼µå | |||||||||
Copyright 2004 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms . Documentation Redistribution Policy µµ ÂüÁ¶ÇϽʽÿÀ.