|
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 µµ ÂüÁ¶ÇϽʽÿÀ.