JavaTM 2 Platform
Standard Ed. 5.0

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 ÆÐÅÏÀ» »ç¿ëÇÏ´Â 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);
 }
 

ÀÌ°ÍÀ¸·Î ´ÙÀ½ÀÇ ³»¿ëÀ» ½ÇÇàÇÒ ¼ö ÀÖ½À´Ï´Ù.

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 °ü¸® ÀÎÅÍÆäÀ̽º¿¡ ÀÌ·¯ÇÑ ¸Þ¼­µå°¡ ¼±¾ðµÇ°í ÀÖÀ» ÇÊ¿ä°¡ ÀÖ½À´Ï´Ù.

µµÀÔµÈ ¹öÀü :
1.5

»ý¼ºÀÚ °³¿ä
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
 

»ý¼ºÀÚ »ó¼¼

MBeanServerInvocationHandler

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 ¿¡°Ô °Ç³×Áø´Ù
¸Þ¼­µåÀÇ »ó¼¼

newProxyInstance

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¸¦ ±¸Çö½ÃŲ´Ù
¹Ýȯ°ª:
»õ·Î¿î ÇÁ·Ï½ÃÀÇ ÀνºÅϽº

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¿Í °°ÀÌ ÀûÀýÇÑ ¿ø½ÃÇü ·¡ÆÛ Å¬·¡½ºÀÇ ÀνºÅϽº¿¡ ·¦ µÈ´Ù
¹Ýȯ°ª:
ÇÁ·Ï½Ã ÀνºÅϽº¿¡¼­ÀÇ ¸Þ¼­µå È£Ãâ·ÎºÎÅÍÀÇ ¹Ýȯ°ª. ÀÎÅÍÆäÀ̽º ¸Þ¼­µåÀÇ ¼±¾ðµÈ ¹Ýȯ°ªÀÇ ÇüÅ°¡ ¿ø½ÃÇüÀÇ °æ¿ì´Â ÀÌ ¸Þ¼­µåÀÇ ¹Ýȯ°ªÀº ´ëÀÀÇÏ´Â ¿ø½ÃÀû ·¡ÆÛ Å¬·¡½ºÀÇ ÀνºÅϽº°¡ ¾Æ´Ï¸é ¾ÈµÈ´Ù. ±×·¸Áö ¾ÊÀº °æ¿ì, ¼±¾ðµÈ ¹Ýȯ°ªÀÇ ÇüÅ¿¡ ÇÒ´çÇÒ ¼ö ÀÖ´Â ÇüÅ°¡ ¾Æ´Ï¸é ¾ÈµÈ´Ù. ÀÌ ¸Þ¼­µå¿¡ ÇÑ ¹Ýȯ°ªÀÌ 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

Copyright 2004 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms . Documentation Redistribution Policy µµ ÂüÁ¶ÇϽʽÿÀ.