|
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
- ÇÁ·Ï½Ã ÀνºÅϽº¿¡¼ÀÇ ¸Þ¼µå È£Ãâ·ÎºÎÅÍ Throw µÇ´Â ¿¹¿Ü. ÀÌ ¿¹¿ÜÀÇ Å¸ÀÔÀº, ÀÎÅÍÆäÀ̽º ¸Þ¼µåÀÇ throws
Àý¿¡ ¼±¾ðµÇ´Â ¿¹¿Ü ŸÀÔÀΰ¡, ¶Ç´Â
üũµÇÁö ¾Ê´Â ¿¹¿Ü ŸÀÔÀÇ java.lang.RuntimeException
¶Ç´Â java.lang.Error
¿¡ ÇÒ´çÇÒ ¼ö ¾øÀ¸¸é ¾È µÈ´Ù. ÀÌ ¸Þ¼µå¿¡
ÇØ Throw µÇ´Â üũ ¿¹¿Ü°¡, ÀÎÅÍÆäÀ̽º ¸Þ¼µåÀÇ 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 µµ ÂüÁ¶ÇϽʽÿÀ.