![]() | ||||||
| ||||||
| À̹ø È£¿¡¼´Â, » EJB 3.0À» ÀÌ¿ëÇÏ¿© À¥ ¼ºñ½º °³¹ßÇϱ⠻ Ä¿½ºÅÒ ºóÀ» ÀÌ¿ëÇÏ¿© GlassFish °ü¸® ½Ã½ºÅÛ È®ÀåÇϱ⠿¡ ´ëÇØ ´Ù·ì´Ï´Ù. ÀÌ ÆÁµéÀº Java EE 5ÀÇ ¿ÀǼҽº ±¸Çö(GlassFish)À» ÀÌ¿ëÇÏ¿© °³¹ßµÇ¾úÀ¸¸ç, GlassFish ÇÁ·ÎÁ§Æ® ÆäÀÌÁö¿¡¼ GlassFish¸¦ ´Ù¿î·Îµå ¹ÞÀ¸½Ç ¼ö ÀÖ½À´Ï´Ù. -»ùÇà ¾ÆÄ«ÀÌºê ´Ù¿î·Îµå ¹Þ±â- EJB 3.0À» ÀÌ¿ëÇÏ¿© À¥ ¼ºñ½º °³¹ßÇϱâ Ä¿½ºÅÒ ºóÀ» ÀÌ¿ëÇÏ¿© GlassFish °ü¸® ½Ã½ºÅÛ È®ÀåÇϱâ |
||
| EJB 3.0À» ÀÌ¿ëÇÏ¿© À¥ ¼ºñ½º °³¹ßÇϱâ | ||
ÀúÀÚ Manisha Umbarje Java EE, JSR 109¸¦ À§ÇÑ À¥ ¼ºñ½º ¸í¼¼¿¡¼´Â À¥ ¼ºñ½º¸¦ ±¸ÇöÇÏ´Â µÎ °¡Áö ¹æ¹ýÀ» Á¤ÀÇÇÑ´Ù. ±× Áß ÇÑ °¡Áö ¹æ¹ýÀº Àڹ٠Ŭ·¡½º ÇÁ·Î±×·¡¹Ö ¸ðµ¨¿¡ ±âÃÊÇÑ °ÍÀ¸·Î, À¥ ¼ºñ½º°¡ À¥ ÄÁÅ×À̳ʿ¡¼ ½ÇÇàµÇ´Â Àڹ٠Ŭ·¡½º¿¡ ÀÇÇØ ±¸ÇöµÈ´Ù. ¶Ç ´Ù¸¥ ¹æ¹ýÀº EJB(Enterprise JavaBeans) ÇÁ·Î±×·¡¹Ö ¸ðµ¨¿¡ ±âÃÊÇÑ °ÍÀ¸·Î, À¥ ¼ºñ½º°¡ EJB ÄÁÅ×À̳ʿ¡¼ ½ÇÇàµÇ´Â stateless ¼¼¼Ç ºóÀ¸·Î ±¸ÇöµÈ´Ù. ÀÌÀüÀÇ Å×Å© ÆÁ JAX-WS¸¦ ÀÌ¿ëÇÑ À¥ ¼ºñ½º °³¹ß¿¡¼´Â Àڹ٠Ŭ·¡½º ÇÁ·Î±×·¡¹Ö ¸ðµ¨°ú JAX-WS(Java API for XML Web Services) 2.0, JSR 224¸¦ ÀÌ¿ëÇÏ¿© À¥ ¼ºñ½º¸¦ °³¹ßÇÏ´Â ¹æ¹ý¿¡ ´ëÇØ ¾Ë¾Æº¸¾Ò´Ù. À̹ø ÆÁ¿¡¼´Â JAX-WS¿Í EJB ÇÁ·Î±×·¡¹Ö ¸ðµ¨À» ÀÌ¿ëÇÏ¿© À¥ ¼ºñ½º¸¦ °³¹ßÇÏ´Â ¹æ¹ýÀ» ¹è¿ì°Ô µÉ °ÍÀε¥, ƯÈ÷ EJB 3.0 stateless ¼¼¼Ç ºóÀ» ÀÌ¿ëÇÏ¿©
º» ÆÁ¿¡´Â ¿¹Á¦ ÆÐŰÁö°¡ Æ÷ÇԵǾî ÀÖ°í, ÀÌ ¿¹Á¦¿¡´Â EJB 3.0 ±â¹ÝÀÇ EJB 3.0 Stateless ¼¼¼Ç ºó Ŭ·¡½º ÀÛ¼ºÇϱâ
¿ì¼± ¼ºñ½º¸¦ À§ÇÑ stateless ¼¼¼Ç ºóÀ» ÀÛ¼ºÇÏ´Â °ÍºÎÅÍ ½ÃÀÛÇØº¸ÀÚ. Java EE 5 Ç÷§Æû¿¡¼ Å©°Ô °³¼±µÈ ³»¿ë Áß Çϳª·Î ´ëÆø ´Ü¼øÇØÁø EJB ÇÁ·Î±×·¡¹Ö ¸ðµ¨À» µé ¼ö Àִµ¥, ÀÌ´Â Enterprise JavaBeans 3.0 Specification, JSR-220¿¡ Á¤ÀǵǾî ÀÖ´Ù. ´Ü¼øÈµÈ ±â´É Áß ÇÑ °¡Áö¸¦ ¿¹·Î µé¸é, ºó ±¸Çö Ŭ·¡½º°¡ ´õ ÀÌ»ó EJB 3.0Àº ´ÙÀ½°ú °°ÀÌ ºó ±¸Çö Ŭ·¡½º¸¦ À§ÇÑ Ãß°¡ ±ÔÄ¢À» ¸í½ÃÇÑ´Ù.
EJB 3.0¿¡¼ ´Ü¼øÈµÈ ¶Ç ÇÑ °¡Áö ³»¿ëÀº ¼¼¼Ç ºóÀ» À§ÇÑ ÄÄÆ÷³ÍÆ® ÀÎÅÍÆäÀ̽º ¶Ç´Â Ȩ ÀÎÅÍÆäÀ̽º°¡ ´õ ÀÌ»ó ¿ä±¸µÇÁö ¾Ê´Â´Ù´Â Á¡ÀÌ´Ù. ¼¼¼Ç ºóÀÌ ÇÊ¿ä·Î ÇÏ´Â ÇÑ °¡Áö ÀÎÅÍÆäÀ̽º´Â ºóÀÇ ºñÁî´Ï½º ¸Þ¼Òµå¸¦ Á¤ÀÇÇÏ´Â ºñÁî´Ï½º ÀÎÅÍÆäÀ̽ºÀÌ´Ù. ºñÁî´Ï½º ÀÎÅÍÆäÀ̽ºÀÇ ºñÁî´Ï½º ¸Þ¼Òµå´Â ÄÄÆ÷³ÍÆ® ÀÎÅÍÆäÀ̽ºÀÇ ºñÁî´Ï½º ¸Þ¼Òµå¿Í ´Þ¸®
ÀÌ·¯ÇÑ ´Ü¼øÈ¿Í ±ÔÄ¢À» ÀüÁ¦·Î ÇÏ¿©, EJB 3.0 ÇÁ·Î±×·¡¹Ö ¸ðµ¨À» µû¸£´Â
package endpoint;
import javax.ejb.Stateless;
@Stateless
public class Calculator {
public Calculator() {}
public int add(int i, int j) {
int k = i +j ;
System.out.println(i + "+" + j +" = " + k);
return k;
}
}
EJB 3.0 ºóÀº EJB 3.0 ºóÀ» À¥ ¼ºñ½º·Î Ç¥½ÃÇϱâ
ºóÀ» À¥ ¼ºñ½º·Î ¸¸µé·Á¸é °£´ÜÈ÷ Ŭ·¡½º¿¡
package endpoint;
import javax.ejb.Stateless;
import javax.jws.WebService;
@Stateless
@WebService
public class Calculator {
public Calculator() {}
public int add(int i, int j) {
int k = i +j ;
System.out.println(i + "+" + j +" = " + k);
return k;
}
}
Àڹ٠Ŭ·¡½º¸¦ À¥ ¼ºñ½º ÆÐŰÁöÇϱâ
EJB ÇÁ·Î±×·¡¹Ö ¸ðµ¨¿¡ ±âÃÊÇÑ À¥ ¼ºñ½º´Â JAR ÆÄÀÏ·Î ÆÐŰÁöµÇ¾î¾ß Çϴµ¥, Áï
JSR 224, JSR 109, JSR 181 ¹× JSR 220ÀÇ °æ¿ì, ¾ÖÇø®ÄÉÀÌ¼Ç ¼¹ö ¹èÄ¡ ÅøÀ» ÀÌ¿ëÇÏ¿© À¥ ¼ºñ½º ¹èÄ¡¸¦ À§ÇÑ ¹èÄ¡ ±â¼úÀÚ(»ç¿ëÀÚ°¡ ¸í½ÃÀûÀ¸·Î Á¦°øÇÏÁö ¾ÊÀº °æ¿ì)¸¦ ºñ·ÔÇÏ¿© ÇÊ¿äÇÑ ¸ðµç artifacts¸¦ »ý¼ºÇÒ ¼ö ÀÖ´Ù. EJB JAR ÆÄÀÏ¿¡ ¹øµé·Î Æ÷ÇÔµÈ ÀÌ artifacts´Â EJB ÄÁÅ×À̳ʿ¡ ¹èÄ¡µÈ´Ù. ¹èÄ¡ÀÚ´Â Àü¼úÇÑ artifacts¸¦ ¸í½ÃÀûÀ¸·Î Á¦°øÇÏ°í ¹èÄ¡ ½Ã À̸¦ EJB ¸ðµâ¿¡ ÆÐŰÁöÇÔÀ¸·Î½á endpoint/Calculator.class endpoint/jaxws/Add.class endpoint/jaxws/AddResponse.class ³ª¸ÓÁö ¹èÄ¡ artifacts´Â ¾ÖÇø®ÄÉÀÌ¼Ç ¼¹ö(ÀÌ °æ¿ì GlassFish)¿¡ ÀÇÇØ »ý¼ºµÈ´Ù. Ŭ¶óÀÌ¾ðÆ® ÀÛ¼ºÇϱâ
À¥ ¼ºñ½º¸¦ ¹èÄ¡ÇÑ ÈÄ¿¡´Â Ŭ¶óÀÌ¾ðÆ® ÇÁ·Î±×·¥À¸·Î ¾×¼¼½º°¡ °¡´ÉÇѵ¥, Ŭ¶óÀÌ¾ðÆ®´Â
@WebServiceRef(wsdlLocation=
"http://localhost:8080/CalculatorService/Calculator?WSDL")
static endpoint.CalculatorService service;
endpoint.Calculator port = service.getCalculatorPort();
Æ÷Æ®¸¦ ȹµæÇÑ ÈÄ¿¡´Â ¿ÀºêÁ§Æ® »ó¿¡¼ ÀÚ¹Ù ¸Þ¼Òµå¸¦ È£ÃâÇÏ´Â °Íó·³ Æ÷Æ® »ó¿¡¼ ºñÁî´Ï½º ¸Þ¼Òµå¸¦ È£ÃâÇÒ ¼ö ÀÖ´Ù. ¿¹¸¦ µé¾î, int ret = port.add(i, 10); ¿¹Á¦ ÄÚµå ½ÇÇàÇϱ⠺» Å×Å©ÆÁ¿¡´Â ¿¹Á¦ ÆÐŰÁö°¡ Æ÷ÇԵǾî ÀÖÀ¸¸ç, ¿¹Á¦ ÆÐŰÁö¿¡¼´Â Å×Å©ÆÁ¿¡¼ ´Ù·é ±â¹ýÀ» ¿¹½ÃÇÑ´Ù. ¿¹Á¦¸¦ ¼³Ä¡ÇÏ°í ½ÇÇàÇÏ·Á¸é ´ÙÀ½ÀÇ ÀÛ¾÷ ÀýÂ÷¸¦ µû¸£µµ·Ï ÇÑ´Ù.
ÀúÀÚ ¼Ò°³ Manisha Umbarje´Â Sun Java System Application ServerÀÇ Á¦Ç° ¿£Áö´Ï¾î¸µ ±×·ì ¼Ò¼ÓÀÓ. ¸ÇÀ§·Î |
||
| Ä¿½ºÅÒ ºóÀ» ÀÌ¿ëÇÏ¿© GlassFish °ü¸® ½Ã½ºÅÛ È®ÀåÇϱâ | ||
|
J2SE(Java 2 Platform, Standard Edition) 5.0¿¡¼ Å©°Ô °³¼±µÈ ºÎºÐÀ¸·Î ¸ð´ÏÅ͸µ°ú °ü¸® ±â´ÉÀ» µé ¼ö ÀÖÀ¸¸ç, J2SE 5.0¿¡ µµÀÔµÈ ÁÖ¿ä Æ¯Â¡¿¡´Â instrumented JVM(Java Virtual Machine)°ú JVMÀ» ¸ð´ÏÅÍÇÏ°í °¨½ÃÇϱâ À§ÇÑ java.lang.management API°¡ Æ÷ÇԵȴÙ. ¶ÇÇÑ API´Â ¸Þ¸ð¸® ÀÌ¿ë·ü, ½º·¹µå »óÅÂ, Ŭ·¡½º ·Îµù Ȱµ¿, °¡ºñÁö Ä÷º¼Ç Àü·« µîÀ» ºñ·ÔÇÏ¿© ´Ù¾çÇÑ JVM °ü·Ã Á¤º¸¿¡ ´ëÇÑ ·ÎÄà ¹× ¿ø°Ý ¾×¼¼½º¸¦ °¡´ÉÇÏ°Ô ÇØÁØ´Ù. ÀÌ¿Í °°ÀÌ °ÈµÈ ÅëÇÕ °ü¸® ¹× ¸ð´ÏÅ͸µ Áö¿ø ±â´ÉÀº J2SE 5.0 ±â¹ÝÀÇ ¾î¶°ÇÑ °ü¸® ¾ÖÇø®ÄÉÀ̼ǿ¡¼µµ ÀÌ¿ëÀÌ °¡´ÉÇÏ´Ù. GlassFish¿Í MBeans ÀÌ·± ±â´ÉÀ» Ȱ¿ëÇÏ´Â Åø Áß Çϳª°¡ ¹Ù·Î Java EE 5ÀÇ ¿ÀÇ ¼Ò½º ¾ÖÇø®ÄÉÀÌ¼Ç ¼¹ö ±¸ÇöÀÎ GlassFishÀε¥, GlassFish ¾ÖÇø®ÄÉÀÌ¼Ç ¼¹ö´Â ÀÚüÀÇ °ü¸® ÀÎÇÁ¶ó ³»¿¡¼ J2SE 5.0 ±â¹ÝÀÇ °ÈµÈ ¸ð´ÏÅ͸µ ¹× °ü¸® ±â´ÉÀ» ¸ðµÎ Ȱ¿ëÇÑ´Ù. ¶ÇÇÑ ¿©±â¿¡´Â Ç÷§Æû MBean ¼¹ö¸¦ ÀÌ¿ëÇÏ¿© ¾ÖÇø®ÄÉÀÌ¼Ç ¼¹ö MBeans¸¦ µî·ÏÇÏ´Â ±â´Éµµ Æ÷ÇԵǾî ÀÖ´Ù. Management Beans(Àϸí "MBeans")´Â JMX(Java Management Extensions) ½ºÆå¿¡ ÁØÇÑ µðÀÚÀÎ ÆÐÅÏÀ» µû¸£´Â ÀÚ¹Ù ¿ÀºêÁ§Æ®·Î, ¸®¼Ò½º¸¦ °ø±ÞÇÏ´Â µ¥ ÀÌ¿ëµÈ´Ù. º» ÆÁÀº »ç¿ëÀÚ°¡ JMX¿¡ ´ëÇÑ ±âº» Áö½ÄÀ» ÀÌ¹Ì °¡Áö°í ÀÖ´Â °ÍÀ¸·Î °¡Á¤ÇÑ´Ù. JMX¿¡ °üÇÑ °³¿ä¸¦ º¸·Á¸é Å×Å©ÆÁ JMX ±â¼ú ÀÌÇØÇϱ⸦ ÂüÁ¶ÇÒ °Í. J2SE 5.0¿¡ ÇÔ²² µµÀÔµÈ Ç÷§Æû MBean ¼¹ö´Â JVM¿¡ ³»ÀåµÈ JMX ±â¹Ý ¿¡ÀÌÀüÆ®·Î, °ü¸® ¾ÖÇø®ÄÉÀ̼ÇÀÌ MBeans¿¡ ¾×¼¼½ºÇÒ ¼ö ÀÖ°Ô ÇØÁØ´Ù. ÀÌ ¿¡ÀÌÀüÆ®´Â JVM¿¡¼ ½ÇÇàµÇ´Â ¸ðµç ¸Å´ÏÁöµå ÄÄÆ÷³ÍÆ®¿¡ ÀÇÇØ °øÀ¯µÉ ¼ö ÀÖ´Ù. GlassFish´Â Ç÷§Æû MBean ¼¹ö¸¦ ÅëÇØ ½Ã½ºÅÛ°ú ¾ÖÇø®ÄÉÀ̼Ǻ°·Î MBeans¿¡ ´ëÇÑ Á¾ÇÕÀûÀ̰í ÅëÇÕµÈ ¸ð´ÏÅ͸µ ¹× °ü¸® ºä¸¦ Á¦°øÇÒ ¼ö ÀÖÀ¸¸ç, J2SE 5.0 ÀÌÀü¿¡ ¿ä±¸µÇ¾ú´ø °Íó·³ ÀÚü ¿¡ÀÌÀüÆ®ÀÇ ÀνºÅϽº¸¦ »ý¼ºÇÏ´Â ´ë½Å ÀÌ ³»Àå ¿¡ÀÌÀüÆ®¸¦ ÀÌ¿ëÇÒ ¼ö ÀÖ´Ù. ¾ÖÇø®ÄÉÀÌ¼Ç ¼¹ö MBeans´Â Ç÷§Æû MBean ¼¹ö ¸®Æ÷ÁöÅ丮¿¡ µî·ÏµÇ±â ¶§¹®¿¡, ÀÚ¹Ù ¸ð´ÏÅ͸µ ¹× °ü¸® ÄܼÖ(JConsole)°ú °°Àº ÅøÀº ¾ÖÇø®ÄÉÀÌ¼Ç ¼¹ö MBeans¿¡ ÀÇÇØ Á¦°øµÇ´Â ¸ðµç ¸®¼Ò½º¿¡ °üÇÑ Á¤º¸¸¦ µð½ºÇ÷¹ÀÌÇÒ ¼ö ÀÖ´Ù. GlassFish¿Í Ä¿½ºÅÒ MBeans »ç¿ëÀÚ´Â ÀÚü Ä¿½ºÅÒ MBeans¸¦ »ý¼ºÇÏ¿© µî·ÏÇÔÀ¸·Î½á GlassFishÀÇ °ü¸® ±â´ÉÀ» È®ÀåÇÒ ¼ö ÀÖ´Ù. Ä¿½ºÅÒ MBeans´Â ¸ð´ÏÅ͸µ ¹× °ü¸® ±â´ÉÀÇ µ¿Àû ÀÎÁ§¼ÇÀ» °¡´ÉÄÉ ÇØÁÙ »Ó ¾Æ´Ï¶ó instrumented Ä¿½ºÅÒ MBean ¼Ó¼ºÀ» Áö¼Ó½ÃÄÑ ÁÜÀ¸·Î½á ¾ÖÇø®ÄÉÀÌ¼Ç ¼¹ö¸¦ Àç½ÃÀÛÇØ¾ß ÇÒ °æ¿ì¿¡¶óµµ Ȱ¼º »óŸ¦ ±×´ë·Î À¯ÁöÇÒ ¼ö ÀÖ°Ô ÇÑ´Ù. Ä¿½ºÅÒ MBeansÀÇ À¯¿ë¼ºÀ» ¿³º¼ ¼ö ÀÖ´Â ÇÑ °¡Áö ¿¹°¡ ¹Ù·Î GlassFishÀÇ ÀÚü °ü¸® ÇÁ·¹ÀÓ¿öÅ©Àε¥, ÀÌ´Â ±ÔÄ¢ ±â¹ÝÀÇ À̺¥Æ® °ü¸® ½Ã½ºÅÛÀ¸·Î, »ç¿ëÀÚ´Â Ä¿½ºÅÒ MBeans·Î ±¸ÇöµÇ´Â Ä¿½ºÅÒ ¾×¼ÇÀ» ½Ã½ºÅÛ °ü¸® ±ÔÄ¢¿¡ Ãß°¡ÇÒ ¼ö ÀÖ´Ù. ¿¹Á¦: ¸ð´ÏÅ͸µ ¹× °ü¸® ±â´É È®ÀåÇϱ⠺» ÆÁ¿¡¼´Â Ä¿½ºÅÒ MBeans¸¦ ÀÌ¿ëÇÏ¿© GlassFishÀÇ ¸ð´ÏÅ͸µ ¹× °ü¸® ±â´ÉÀ» È®ÀåÇÏ´Â ¿¹Á¦¸¦ Á¦½ÃÇϰí, ÀÌ ¿¹Á¦¸¦ ÅëÇØ À¥ ¼ºñ½º·ÎºÎÅÍ Á¤±âÀûÀ¸·Î ȹµæÇÏ´Â µ¥ÀÌÅ͸¦ ó¸®ÇÏ´Â Java EE ¾ÖÇø®ÄÉÀ̼ÇÀ» È®ÀåÇØ º¸µµ·Ï ÇÑ´Ù. ¶ÇÇÑ °ü¸® È®ÀåÀ» À§ÇØ ¸ð´ÏÅÍ ´ë»ó À̺¥Æ®, ±×¸®°í ±× À̺¥Æ®¿¡ ´ëÇÑ ÀÀ´äÀ¸·Î ¾ÖÇø®ÄÉÀ̼ÇÀÌ ÃëÇÒ ¾×¼ÇÀ» Ãß°¡Çϵµ·Ï ÇÑ´Ù. À̺¥Æ®´Â À̸ÞÀÏ ÁÖ¼Ò ¸ñ·ÏÀ» ¾÷µ¥ÀÌÆ®ÇÏ´Â °ÍÀ̰í, ¾×¼ÇÀº ¾÷µ¥ÀÌÆ®µÈ À̸ÞÀÏ ÁÖ¼Ò ¸ñ·ÏÀ¸·Î À̸ÞÀÏÀ» Àü¼ÛÇÏ´Â °ÍÀÌ´Ù. ÀÌ ½Ã³ª¸®¿À¿¡¼, À¥ ¼ºñ½ºÀÇ Å¬¶óÀ̾ðÆ®À̱⵵ ÇÑ Ä¿½ºÅÒ MBeanÀº À¥ ¼ºñ½º¸¦ Æú¸µÇÑ ÈÄ¿¡ À̸ÞÀÏ ÁÖ¼Ò ¸ñ·ÏÀ» ¾÷µ¥ÀÌÆ®ÇÑ´Ù. ÇÏÁö¸¸, ÀÌ ¿¹Á¦¿¡¼´Â ´Ü¼øÈ¸¦ À§Çؼ À̸ÞÀÏ ÁÖ¼ÒÀÇ ¹®ÀÚ¿ÀÌ Ä¿½ºÅÒ MBeanÀÇ ¼Ó¼ºÀ¸·Î µÇ¾î ÀÖ´Ù. »ç¿ëÀÚ´Â JConsoleÀ» ÀÌ¿ëÇÏ¿© Á÷Á¢ ¸ñ·ÏÀ» ¼öÁ¤Çϰí, ¼Ó¼ºÀÌ ¼öÁ¤µÇ¸é ¸®½º´× Ä¿½ºÅÒ MBean¿¡ ÅëÁö°¡ ÀÌ·ç¾îÁø´Ù. ±×·± ´ÙÀ½ ¸®½º´× Ä¿½ºÅÒ MBeanÀÌ ¾÷µ¥ÀÌÆ®µÈ À̸ÞÀÏ ÁÖ¼Ò ¸ñ·Ï(Áï, ¾÷µ¥ÀÌÆ®µÈ ¼Ó¼ºÀÇ °ª)¿¡ À̸ÞÀÏÀ» Àü¼ÛÇÏ¿© À̺¥Æ®¸¦ ó¸®ÇÑ´Ù. º» Å×Å©ÆÁ¿¡´Â ¿¹Á¦ ¾ÆÄ«À̺갡 Æ÷ÇԵǾî ÀÖÀ¸¸ç, ¿©±â¿¡´Â ¿¹Á¦¸¦ À§ÇÑ ¼Ò½º ÄÚµå, ±×¸®°í ÄÄÆÄÀÏµÈ Å¬·¡½º¸¦ ºñ·ÔÇÏ¿© ¿¹Á¦¿¡¼ »ç¿ëµÇ´Â Ŭ·¡½º¸¦ À§ÇÑ javadocÀÌ ÇÔ²² Æ÷ÇԵǾî ÀÖ´Ù. 1´Ü°è: ¼Â¾÷ Ãʱ⠼³Á¤ ÀÛ¾÷ºÎÅÍ ½ÃÀÛÇØº¸ÀÚ. GlassFish¸¦ ¾ÆÁ÷ ±¸ÇÏÁö ¸øÇß´Ù¸é GlassFish ´Ù¿î·Îµå ÆäÀÌÁö¿¡¼ ´Ù¿î·ÎµåÇÑ ´ÙÀ½ ¾Æ·¡ÀÇ È¯°æº¯¼ö¸¦ ¼³Á¤ÇÑ´Ù.
2´Ü°è: GlassFish ½ÃÀÛÇϱ⠴ÙÀ½ ¸í·É¾î¸¦ ÀÔ·ÂÇÏ¿© GlassFish¸¦ ½ÃÀÛÇÑ´Ù.
<GF_install_dir>/bin/asadmin start-domain domain1
ÀÌ ¶§, 3´Ü°è: ¿¹Á¦ ¾ÆÅ°ÀÌºê ´Ù¿î·ÎµåÇϱâ ÇØ´ç ÆÁÀÇ ¿¹Á¦ ¾ÆÄ«À̺긦 ´Ù¿î·ÎµåÇÏ¿© ¾ÐÃàÀ» Ǭ´Ù. jar xvf ttmar2006custmbean.jar
¾ÐÃàÀ» Ç®°í ³ª¸é 4´Ü°è: Ä¿½ºÅÒ MBeans »ý¼ºÇϱâ
º» ¿¹Á¦¿¡¼´Â 2°³ÀÇ Ä¿½ºÅÒ MBeans--À̺¥Æ® ¼Ò½º¿ë°ú À̺¥Æ® ûÃë¿ë(À̺¥Æ® "½ÌÅ©")--¸¦ »ç¿ëÇÑ´Ù. ÀÌ 2°³ÀÇ MBeans¸¦ À§ÇÑ ¼Ò½º ÄÚµå´Â
Ä¿½ºÅÒ MBeanÀº MBean ÀÎÅÍÆäÀ̽º¿Í MBean ±¸Çö Ŭ·¡½º¸¦ ÇÊ¿ä·Î Çϴµ¥, À̺¥Æ® ¼Ò½º¿ë Ä¿½ºÅÒ MBean ÀÎÅÍÆäÀ̽º´Â
Ä¿½ºÅÒ MBeans¸¦ À§ÇÑ ¼Ò½º ÆÄÀÏÀ» »ý¼ºÇÑ ÈÄ¿¡´Â ÆÄÀϵéÀ» javac -d . EventSourceCustom.java EventSourceCustomMBean.java javac -d . EventSinkCustom.java EventSinkCustomMBean.java
5´Ü°è: Ä¿½ºÅÒ MBean Ŭ·¡½º º¹»çÇϱâ
6´Ü°è: À̺¥Æ® ¼Ò½º Ä¿½ºÅÒ MBean ¹èÄ¡Çϱâ
´ÙÀ½°ú °°ÀÌ À̺¥Æ® ¼Ò½º Ä¿½ºÅÒ MBean, <GF_install_dir>/bin/asadmin create-mbean --user admin --passwordfile password.txt --port 4848 com.example.mbeans.EventSourceCustom
Ç÷§Æû MBean ¼¹ö¿¡ ´ÙÀ½ ¸í·É¾î¸¦ ÀÌ¿ëÇÏ¿© Ä¿½ºÅÒ MBeanÀÌ ¹èÄ¡µÇ¾ú´ÂÁö È®ÀÎÇÒ ¼ö ÀÖ´Ù(¸í·É¾î´Â ÇÑ Çà¿¡ ÀÔ·ÂÇØ¾ß ÇÑ´Ù). <GF_install_dir>/bin/asadmin list-mbeans --user admin --passwordfile password.txt ´ÙÀ½°ú °°Àº ³»¿ëÀÌ Ç¥½ÃµÇ¾î¾ß ÇÑ´Ù. com.example.mbeans.EventSourceCustom user:impl-class-name=com.example.mbeans.EventSourceCustom, name=com.example.mbeans.EventSourceCustom Enabled Command list-mbeans executed successfully. 7´Ü°è: À̺¥Æ® ½ÌÅ© Ä¿½ºÅÒ MBean ¹èÄ¡Çϱâ
´ÙÀ½°ú °°ÀÌ À̺¥Æ® ½ÌÅ© Ä¿½ºÅÒ MBean, <GF_install_dir>/bin/asadmin create-mbean --user admin --passwordfile password.txt --port 4848 --objectname "user:impl-class-name=com.example.mbeans.EventSinkCustom, name=custom-event-sink" --attributes HostName=<yourmailserver>:Id=<yourId>: Password=<yourpw> com.example.mbeans.EventSinkCustom
´Ü, ¸í·É¾îÀÇ ¾Õ¿¡¼ ¾ð±ÞÇÑ °Íó·³, instrumented Ä¿½ºÅÒ MBean ¼Ó¼ºÀ» Áö¼Ó½ÃÄÑ ÁÜÀ¸·Î½á ¾ÖÇø®ÄÉÀÌ¼Ç ¼¹ö¸¦ Àç½ÃÀÛÇØ¾ß ÇÒ °æ¿ì¿¡¶óµµ Ȱ¼º »óŸ¦ ±×´ë·Î À¯ÁöÇÒ ¼ö ÀÖ´Ù. µû¶ó¼, ¸í·É¾îÀÇ ÆÄ¶ó¹ÌÅ͸¦ ÁöÁ¤Çϸé Ä¿½ºÅÒ MBeanÀÇ ·±Å¸ÀÓ ÆÄ¶ó¹ÌÅͰ¡ ±¸¼ºµÈ´Ù. ÇÏÁö¸¸ MBeanÀÌ »ý¼ºµÈ ÈÄ¿¡´Â ¼¹ö°¡ Àç½ÃÀÛÇÏ´õ¶óµµ ÆÄ¶ó¹ÌÅÍ´Â ±âÁ¸ÀÇ »óŸ¦ Áö¼ÓÇÏ°Ô µÈ´Ù. À̹ø¿¡µµ ´ÙÀ½ ¸í·É¾î¸¦ ÀÌ¿ëÇÏ¿© Ä¿½ºÅÒ MBeanÀÌ ¹èÄ¡µÇ¾ú´ÂÁö È®ÀÎÇÒ ¼ö ÀÖ´Ù(¸í·É¾î´Â ÇÑ Çà¿¡ ÀÔ·ÂÇØ¾ß ÇÑ´Ù). <GF_install_dir>/bin/asadmin list-mbeans --user admin --passwordfile password.txt ´ÙÀ½°ú °°Àº ³»¿ëÀÌ Ç¥½ÃµÇ¾î¾ß ÇÑ´Ù. com.example.mbeans.EventSourceCustom user:impl-class-name=com.example.mbeans.EventSourceCustom, name=com.example.mbeans.EventSourceCustom Enabled com.example.mbeans.EventSinkCustom user:impl-class-name=com.example.mbeans.Event SinkCustom, name=custom-event-sink Enabled Command list-mbeans executed successfully. 8´Ü°è: À̸ÞÀÏ ¸ñ·Ï ¾÷µ¥ÀÌÆ®Çϱ⠺» ¿¹Á¦¿¡¼´Â JConsoleÀ» ÀÌ¿ëÇÏ¿© À̸ÞÀÏ ÁÖ¼ÒÀÇ ¹®ÀÚ¿ÀÌ Æ÷ÇÔµÈ Ä¿½ºÅÒ MBeanÀÇ ¼Ó¼ºÀ» ¾÷µ¥ÀÌÆ®ÇÑ´Ù. ´ÙÀ½ ¸í·É¾î¸¦ ÀÔ·ÂÇÏ¿© JConsoleÀ» ½ÃÀÛÇÑ´Ù. <JAVA_HOME>/bin/jconsole JConsole¸¦ ½ÃÀÛÇϸé Local/Remote/Advanced JMX Á¢¼Ó ÅÇÀÌ ÀÖ´Â Á¢¼Ó ´ëÈ»óÀÚ°¡ Ç¥½ÃµÇ¾î¾ß ÇÑ´Ù. Remote ÅÇÀ» Ŭ¸¯Çϰí ÇØ´ç È£½ºÆ®(localhost), Æ÷Æ®(GlassFishÀÇ JMX Á¢¼Ó ¼¹ö´Â Æ÷Æ® 8686¿¡¼ ûÃë), »ç¿ëÀÚ À̸§(admin), ºñ¹Ð¹øÈ£(adminadmin) µîÀÇ °ªÀ» ÀÔ·ÂÇÑ´Ù.
Remote ÅÇÀÇ µð½ºÇ÷¹ÀÌ¿¡¼ Connect ¹öưÀ» Ŭ¸¯Çϸé RMI Ä¿³ØÅ͸¦ ÅëÇØ Ç÷§Æû MBean ¼¹ö·ÎÀÇ Á¢¼ÓÀÌ ÀÌ·ç¾îÁø´Ù. À̾îÁö´Â Connection â¿¡¼ MBeans ÅÇÀ» Ŭ¸¯Çϰí, âÀÇ ¿ÞÂÊ ±¸È¹¿¡ À§Ä¡ÇÑ MBean Æ®¸®¿¡¼ »ç¿ëÀÚ ºê·£Ä¡¸¦ È®ÀåÇÑ´Ù.
âÀÇ ¿À¸¥ÂÊ ÆÐ³Î¿¡ ÀÖ´Â Attributes ÅÇÀ» Ŭ¸¯ÇÑ ´ÙÀ½
AttributeChangeNotification attrnotif =
(AttributeChangeNotification) notif;
String newEmailIdStr = (String)attrnotif.getNewValue();
ÀÌ¾î¼ À̺¥Æ® ½ÌÅ© Ä¿½ºÅÒ MBeanÀÌ ¾÷µ¥ÀÌÆ®µÈ ÁÖ¼Ò·Î À̸ÞÀÏÀ» Àü¼ÛÇÑ´Ù. 9´Ü°è: À̸ÞÀÏ È®ÀÎÇϱ⠸®½º´× Ä¿½ºÅÒ MBeanÀÌ °¢ÀÚÀÇ ÁÖ¼Ò·Î À̸ÞÀÏÀ» Àü¼ÛÇß´ÂÁö È®ÀÎÇϱâ À§ÇØ ¿ì¼± À̸ÞÀÏÀ» »ìÆìº»´Ù. ´ÙÀ½°ú °°Àº ¸Þ½ÃÁö°¡ ¼ö½ÅµÇ¾î¾ß ÇÑ´Ù.
´õ ÀÚ¼¼ÇÑ ³»¿ëÀº ´ÙÀ½ »çÀÌÆ®¸¦ ÂüÁ¶ÇÒ °Í.
ÀúÀÚ ¼Ò°³ Nandini Ektare´Â ½ã ¸¶ÀÌÅ©·Î½Ã½ºÅÛÁîÀÇ ½ã ÀÚ¹Ù ½Ã½ºÅÛ ¾ÖÇø®ÄÉÀÌ¼Ç ¼¹ö °³¹ß ±×·ì ¼Ò¼ÓÀ¸·Î, JMX¿Í Java EEÀÌ ±×³àÀÇ ÁÖ¿ä °ü½É ºÐ¾ßÀÌ´Ù. Kedar Mhaswade´Â ½ã ¸¶ÀÌÅ©·Î½Ã½ºÅÛÁîÀÇ ½ºÅÂÇÁ ¿£Áö´Ï¾î·Î, JSR 003: Java Management Extensions Àü¹®°¡ ±×·ìÀÇ ÀÏ¿øÀÌ´Ù. ±×ÀÇ ÁÖ¿ä °ü½É ºÐ¾ß·Î´Â ¿ÀǼҽº ¼ÒÇÁÆ®¿þ¾î, JMX, Java EE µîÀÌ ÀÖ´Ù. ¸ÇÀ§·Î |
||
º»
¸ÞÀÏÀº ¼ö½ÅÀ» µ¿ÀÇÇÑ È¸¿ø´Ô¿¡°Ô¸¸ ¹ß¼ÛµË´Ï´Ù.
º» ¸ÞÀÏÀÇ ¼ö½ÅÀ» °ÅºÎÇϰųª ¼ö½ÅÁÖ¼Ò¸¦ º¯°æÇÏ·Á¸é SKDN@Sun.comÀ¸·Î ¹®ÀÇ Áֽñ⠹ٶø´Ï´Ù. SKDN(Sun Korea Developers Network)¿¡¼ J2EE/J2SE Å×Å©ÆÁ µî ´Ù¾çÇÑ ¾ÆÆ¼Å¬µéÀ» Âü°íÇϼ¼¿ä. Copyright 2003-2006 Sun Korea, Ltd. All rights reserved. |