|
ȸ¿ø´Ô, ¾È³çÇϼ¼¿ä?
2003³âµµ Èǽ Áö³ª ÀÌÁ¦ ÇÑ´Þ ³²Áþ¹Û¿¡ ³²Áö ¾Ê¾Ò½À´Ï´Ù. ¿Ã ÇÑÇØ´Â ¾î¶»°Ô º¸³»¼Ì³ª¿ä?
|
| ±×µ¿¾È ÀÚ¹Ù°ü·Ã Á¤º¸¸¦ ã´À¶ó ¶Ç ¿µ¹®À¸·Î ÀдÀ¶ó ¸¹ÀÌ ºÒÆíÇϼÌÁÒ?
Çѱ¹ ½ã¿¡¼´Â ÀÌ·¯ÇÑ °³¹ßÀںеéÀÇ ¿äû¿¡ ÈûÀÔ¾î ÀÚ¹Ù ÇÑ±Û »çÀÌÆ®¿Í ÇѱÛÈµÈ ÀÚ¹Ù ´º½º·¹ÅÍ À̸ÞÀÏ
¼ºñ½º¸¦ ½ÃÀÛÇÕ´Ï´Ù. J2SE¿Í J2EE·Î ±¸¼ºµÈ ÀÚ¹Ù ´º½º·¹Å͸¦ ÅëÇØ¼ ¾ËÂ÷°í À¯¿ëÇÑ
Á¤º¸¸¦ Á¦°øÇØ µå¸± °ÍÀ» ¾à¼Óµå¸³´Ï´Ù.
|

|
Enterprise Java Technologies Tech Tips¿¡ ¿À½Å ¿©·¯ºÐÀ» ȯ¿µÇÕ´Ï´Ù. Java
2 Platform, Enterprise Edition (J2EE)¿¡ ±â¹ÝÇÑ enterprise Java
technologies ¿Í APIsÀÇ »ç¿ë¿¡ °üÇÑ ÃֽŠÁ¤º¸¸¦ ¾ò¾î °¡½Ã±â ¹Ù¶ø´Ï´Ù. ÀÌ ±Û¿¡¼´Â Java
2 SDK, Standard Edition, v 1.4¿Í Java 2 SDK, Enterprise Edition,
v 1.3.1 (Reference Implementation)¸¦ »ç¿ëÇÕ´Ï´Ù.
À̹ø È£¿¡¼´Â,
JNDIÀÇ
¼Ò°³
Entity
Resolver ÀÛ¼ºÇϱâ
ÀúÀÚ Mark Johnson
¿¹Á¦ÀÇ »ùÇà ¾ÆÄ«À̺긦 ´Ù¿î·Îµå
¹ÞÀ¸¼¼¿ä. ÄÁÅØ½ºÆ® ·çÆ®´Â ttaug2003ÀÌ°í »ùÇÃÄÚµåÀÇ »ç¿ë¹ýÀº index.html welcome file
¿¡¼ º¸½Ç ¼ö ÀÖ½À´Ï´Ù. ÀÌ ÄÚµåÀÇ »ç¿ë¿¡ °üÇÑ ±ÇÇÑÀ̳ª Á¤º¸´Â license
terms¸¦ Âü°íÇϽñ⠹ٶø´Ï´Ù.
JNDIÀÇ ¼Ò°³
¸¹Àº J2EE°³¹ßÀÚµéÀÌ È¯°æ º¯¼ö(environment entries), DataSource
°´Ã¼, JMS ¸Þ½ÃÁö ¼ö½ÅÁö(JMS message destinations) ±×¸®°í ¿£ÅÍÇÁ¶óÀÌÁî ºó Ȩ ÀÎÅÍÆäÀ̽º(enterprise
bean home interfaces)¸¦ ã°íÀÚ Java Naming and Directory Interface
(JNDI)¸¦ ÀÌ¿ëÇÑ´Ù. ÇÏÁö¸¸ ¸¹Àº »ç¶÷µéÀº JNDI¿¡ ´ëÇÑ ÁøÁ¤ÇÑ ÀÌÇØ ¾øÀÌ ÀÌ·¯ÇÑ ±â´ÉÀ» ÇÏ´Â Äڵ带
´Ü¼øÈ÷ º¹»çÇØ¼ ºÙÀÌ°í °íÄ¥ »ÓÀÌ´Ù. ÀÌ ÆÁÀº »ç¿ëÀÚÀÇ ¿£ÅÍÇÁ¶óÀÌÁî ½Ã½ºÅÛ¿¡ ¹èÆ÷µÈ ¸®¼Ò½º¸¦ ¾×¼¼½ºÇϱâ
À§ÇØ JNDI¸¦ »ç¿ëÇÏ´Â ¹æ¹ýÀ» ¼Ò°³ÇÑ´Ù.
¿£ÅÍÇÁ¶óÀÌÁî ¾ÖÇø®ÄÉÀ̼ǵéÀº ±×°ÍµéÀÇ Æ¯¼º»ó, ºñÁî´Ï½º ¿ÀÆÛ·¹À̼ÇÀ» Áö¿øÇϱâ À§ÇØ ¿©·¯°÷¿¡ ¹èÆ÷µÈ ¸®¼Ò½ºµéÀ»
Çѵ¥ ¸ð¾Æ¾ß ÇÑ´Ù. »õ·Î¿î ½Ã½ºÅÛÀÌ »ý¼ºµÇ¾ú´Ù°Å³ª, ±âÁ¸ÀÇ ½Ã½ºÅÛÀÌ ¾÷±×·¹ÀÌµå µÇ¾ú´Ù°Å³ª, ¿À·¡µÈ ½Ã½ºÅÛÀÌ
´õ ÀÌ»ó ÀÛµ¿ÇÏÁö ¾ÊÀ» ¶§ ¼ºñ½ºµéÀÌ ¿À°¡°Ô µÈ´Ù. ¾ÖÇø®ÄÉÀÌ¼Ç ¼ºñ½º¸¦ ¼·Î ºÐ¸®ÇÏ´Â °ÍÀº ½Ã½ºÅÛÀ» ½±°Ô
À¯Áö/È®ÀåÇÒ ¼ö ÀÖ°Ô ÇÑ´Ù. ÇÏÁö¸¸ ¼ºñ½º°¡ ºÐ¸®µÇ¾úÀ» ¶§, °¢ÀÚÀÇ ¿ªÇÒÀ» Á¦´ë·Î ¼öÇàÇϱâ À§Çؼ´Â ¼·Î¸¦
ã¾Æ³¾ ¼ö ÀÖ¾î¾ß¸¸ ÇÑ´Ù. ÀÌ ¶§°¡ ¹Ù·Î ¸í¸í ¼ºñ½º(naming services)¿Í µð·ºÅ丮°¡ À¯¿ëÇÑ
½ÃÁ¡ÀÌ´Ù.
¸í¸í ¼ºñ½º´Â À̸§À» ÀÌ¿ëÇØ¼ °´Ã¼³ª °´Ã¼¿¡ ´ëÇÑ ·¹ÆÛ·±½º¸¦ °Ë»öÇÏ´Â ¹æ¹ýÀ» Á¦°øÇÑ´Ù. ±×·¯ÇÑ °´Ã¼·ÎÀÇ
¿¹´Â ¸Þ½ÃÁö Å¥(message queues), µ¥ÀÌÅͺ£À̽º Ä¿³Ø¼Ç ÆÑÅ丮(database connection
factories), ȯ°æ ÆÄ¶ó¹ÌÅÍ(environment parameters), ±×¸®°í ¿£ÅÍÇÁ¶óÀÌÁî ºó°ú
°°Àº ºÐ»ê ÄÄÆ÷³ÍÆ®(distributed components)µîÀÌ ÀÖ´Ù. ¾ÖÇø®ÄÉÀÌ¼Ç °³¹ßÀÚµéÀº ¸í¸í ¼ºñ½º³»ÀÇ
À̸§¿¡ °´Ã¼µéÀ» ¹ÙÀεùÇØ¼ °´Ã¼¿¡ À̸§À» ºÙÀδÙ. ¾ÖÇø®ÄÉÀÌ¼Ç ÄÚµå´Â ÀÌ·¸°Ô ¹ÙÀεùµÈ À̸§À¸·Î °´Ã¼µéÀ»
°Ë»öÇϱâ À§ÇØ ¸í¸í ¼ºñ½º¸¦ »ç¿ëÇÒ ¼ö°¡ ÀÖ´Ù. ÀÌ·¯ÇÑ ºÐ¸®(decoupling)´Â ³×Æ®¿öÅ© °´Ã¼µéÀ» »ç¿ëÇÏ´Â
½Ã½ºÅÛ ÄÄÆ÷³ÍÆ®¿¡ ´ëÇÑ ¾î¶°ÇÑ º¯°æ¾øÀÌ À¯Áö º¸¼ö¸¦ À§ÇØ ¿Ã¸®°Å³ª ³»¸± ¼ö ÀÖ°í, ¿äûµéÀ» ¸®´ÙÀÌ·ºÆ®(redirect)½Ãų
¼ö ÀÖÀ¸¸ç, ¼ºñ½º°¡ ´ÙÀ̳ª¹ÍÇÏ°Ô ÀçÁ¶Á¤µÉ ¼ö ÀÖÀ½À» ÀǹÌÇÑ´Ù.
ÀÌ¹Ì ±âÁ¸ÀÇ ¸í¸í ¼ºñ½º¿¡ ´ëÇØ Àß ÀÌÇØÇϰí ÀÖÀ¸¸®¶ó°í »ý°¢µÈ´Ù.
- DNS (Domain Name Service)´Â
java.sun.com°ú
°°Àº È£½ºÆ®³×ÀÓÀ» %nslookup java.sun.com%°ú °°Àº IPÁַμÒ
¸ÅÇÎÇÑ´Ù.
- CORBA (Common Object Request Broker Architecture)¸¦ À§ÇØ
¾²ÀÌ´Â COS (Common Object Services) ¸í¸í ¼ºñ½º ´Â CORBA ÀÎÅÍÆäÀ̽º À̸§(interface
names)À» °´Ã¼ ÀÎÅÍÆäÀ̽º·Î ¸ÅÇÎÇÑ´Ù.
»ç¿ëÀÚ´Â ÄÄÇ»ÅÍÀÇ ÆÄÀϽýºÅÛÀ» ÆÄÀÏÀÇ °æ·Î(pathname)¿¡ ÆÄÀÏÀÇ ÄÁÅÙÃ÷¸¦ ¸ÅÇÎÇÏ´Â ÀÏÁ¾ÀÇ ¸í¸í
¼ºñ½º·Î »ý°¢ÇÒ ¼ö ÀÖ´Ù.
¹ØÀÇ ±×¸²Àº ¸í¸í ¼ºñ½º°¡ ¼ºñ½º ³×ÀÓÀ» µ¥ÀÌÅͳª ¼ºñ½º ÀÎÅÍÆäÀ̽º·Î ¸ÅÇÎÇÏ´Â ¹æ¹ýÀ» º¸¿©ÁÖ°í ÀÖ´Ù.
À̸§(name)À» °´Ã¼·Î ¸ÅÇÎÇÏ´Â °ÍÀ» ¹ÙÀεùÀ̶ó ºÎ¸¥´Ù. ¹ÙÀεùÀº ¸í¸í ¼ºñ½º¸¦ Çü¼ºÇÏ´Â
»ç¶÷¿¡ ÀÇÇØ »ý¼ºµÈ´Ù. ´ëºÎºÐÀÇ ¸í¸í ¼ºñ½º´Â ÇÁ·Î±×·¥ÀÌ ·±Å¸Àӽÿ¡ À̸§À» °´Ã¼·Î ¹ÙÀεùÇϰųª ÇØÁ¦ÇÏ´Â
¹æ¹ýµµ Á¦°øÇÑ´Ù.
ÄÁÅØ½ºÆ®´Â À̸§À» °´Ã¼·Î ¹ÙÀεùÇÑ ÁýÇÕÀÌ´Ù. ¿¹¸¦ µé¸é, ÆÄÀϽýºÅÛ¿¡¼ °æ·Î /home
´Â ÈçÈ÷ ½Ã½ºÅÛÀÇ À¯Àú µð·ºÅ丮¸¦ Æ÷ÇÔÇÏ´Â ÄÁÅØ½ºÆ®ÀÌ´Ù. ÄÁÅØ½ºÆ®´Â ´Ù¸¥ ÄÁÅØ½ºÆ®¸¦ Æ÷ÇÔÇÒ ¼öµµ ÀÖ´Ù.
/home ÄÁÅØ½ºÆ®ÀÇ À¯Àú µð·ºÅ丮´Â ±× ÀÚü°¡ À¯Àú ÆÄÀÏÀ» Æ÷ÇÔÇÏ´Â ÄÁÅØ½ºÆ®ÀÌ´Ù.
ÄÁÅØ½ºÆ®´Â ÃÖ¼ÒÇÑ ¸í¸í ±ÔÄ¢(naming convention)°ú °Ë»ö±â´É(lookup function)À»
°®´Â´Ù. ¿¹¸¦ µé¸é, DNS´Â °¡Àå ±¸Ã¼ÀûÀÎ ½ºÆ®¸µÀº ¿ÞÂÊ, µµ¸ÞÀÎÀº ¿À¸¥ÂÊ¿¡ ³ªÅ¸³»¸é¼ ½ºÆ®¸µÀ» Á¡À¸·Î
ºÐ¸®ÇÏ´Â ¸í¸í ±ÔÄ¢À» °®´Â´Ù. DNSÀÇ °Ë»ö±â´ÉÀº nslookup ÇÁ·Î±×·¥À» ÀÌ¿ëÇØ¼
Ä¿¸Çµå¶óÀÎÀ¸·ÎºÎÅÍ ¾×¼¼½º°¡ °¡´ÉÇÏ´Ù.(¹°·Ð, DNS ¸í¸í ¼ºñ½º¿¡ ´ëÇÑ APIµµ Á¸ÀçÇÑ´Ù.) ÄÁÅØ½ºÆ®´Â
´ë°Ô °´Ã¼µéÀ» ¹ÙÀεùÇϰí ÇØÁ¦ÇÏ´Â ¹æ¹ý°ú ±×°ÍµéÀ» ¿°ÅÇÏ´Â ¹æ¹ýÀ» Á¦°øÇÑ´Ù.
¶§¶§·Î ¸í¸í ¼ºñ½º ÀÇ °´Ã¼µéÀº ´Ù¸¥ ÇÁ·Î±×·¥ÀÌ ÇÊ¿ä·Î ÇÏ´Â µ¥ÀÌÅ͸¦ Æ÷ÇÔÇÑ´Ù. °¡·É, J2EE¾ÖÇø®ÄÉÀ̼ǿ¡¼
ȯ°æ º¯¼ö¸¦ ³ªÅ¸³»´Â °´Ã¼µéÀº ´ë°Ô ¸í¸í ¼ºñ½º ¿¡ ÀúÀåµÈ´Ù. ÇÏÁö¸¸ À̿ܿ¡ ¸í¸í ¼ºñ½ºÀÇ °´Ã¼´Â °´Ã¼¿¡
´ëÇÑ ·¹ÆÛ·±½º¸¦ ³ªÅ¸³½´Ù. ¿¹¸¦ µé¸é, ¼¹ö¿¡ ·¹ÆÛ·±½º¸¦ Á¦°øÇÏ´Â °´Ã¼´Â Åë»óÀûÀ¸·Î ¿ÀÇ ¼¹ö Ä¿³Ø¼ÇÀÌ
¾Æ´Ñ ¼¹ö¿¡ ´ëÇÑ ·¹ÆÛ·±½º·Î¼ ¸í¸í ¼ºñ½º ¿¡ ÀÇÇØ ÀúÀåµÈ´Ù.¸í¸í ¼ºñ½º ¿¡ ÀÇÇØ ¸®ÅÏµÈ ·¹ÆÛ·±½º °´Ã¼´Â
ÇÊ¿ä½Ã¿¡ ¼¹ö Ä¿³Ø¼ÇÀ» »ý¼ºÇϱâ À§ÇØ »ç¿ëµÉ ¼ö ÀÖ´Ù.
´ÙÀ½ ±×¸²Àº ÄÁÅØ½ºÆ®ÀÇ °³³äµµÀÌ´Ù. top ÄÁÅØ½ºÆ®´Â /top·Î ºÒ¸®¸ç °´Ã¼,
·¹ÆÛ·±½º, ±×¸®°í ´Ù¸¥ ÄÁÅØ½ºÆ®µéÀ» Æ÷ÇÔÇÑ´Ù. ÄÁÅØ½ºÆ® /topÀº subcontexts
b ¿Í g¸¦ °®´Â´Ù. ÄÁÅØ½ºÆ® /top/g ´Â subcontext "b"¸¦
°®´Â´Ù. A¶ó°í ºÒ¸®´Â °´Ã¼°¡ Çϳª ÀÌ»ó ÀÏÁö¶óµµ, ƯÁ¤ °³Ã¼ /top/g/b/a´Â
±× À§Ä¡°¡ ÄÁÅØ½ºÆ® /top/g/b ÀÓÀÌ ºÐ¸íÇϱ⠶§¹®¿¡ ãÀ» ¼ö°¡ ÀÖ´Ù.
¹ÙÀεùµÈ °´Ã¼µé¿¡ ´ëÇÑ µ¥ÀÌÅ͸¦ Á¦°øÇÏ´Â ¸í¸í ¼ºñ½º¸¦ µð·ºÅ丮¶ó°í ºÎ¸¥´Ù. °¡·É, ÆÄÀϽýºÅÛ
µð·ºÅ丮´Â ÀϹÝÀûÀ¸·Î Å©±â, ŸÀÔ, Á¢±Ù Çã¿ë ±×¸®°í ÆÄÀÏÀ» »ý¼ºÇÏ°í ¼öÁ¤ÇÑ ³¯Â¥¿¡ °üÇÑ Á¤º¸¸¦ Á¦°øÇÑ´Ù.
¸î¸î µð·ºÅ丮´Â À̸§À¸·Î °Ë»ö, ¾ÖÆ®¸®ºäÆ®ÀÇ Á¶ÇÕÀ¸·Î °Ë»ö ¸ðµÎ¸¦ Çã¿ëÇÑ´Ù.
°¢°¢ÀÇ ¸í¸í ¼ºñ½ºµéÀº °¢ÀÚÀÇ Å½ºÅ©(task)¿¡ Àß ¸Âµµ·Ï µÇ¾îÀÖÁö¸¸, ±×µéÀÌ ÀÛµ¿ÇÏ´Â ¹æ½ÄÀº ¼·Î
´Ù¸£´Ù. °¢ ¸í¸í ¼ºñ½º´Â °íÀ¯ÀÇ ¸í¸í±ÔÄ¢, °Ë»ö±â´É, ¹ÙÀεù°ú µð·ºÅ丮 ÇÁ·ÎÅäÄÝ(directory protocols)°ú
°´Ã¼ ¼ºñ½º ÀÎÅÍÆäÀ̽º(object service interfaces)¸¦ °®´Â´Ù. JNDI ´Â ³×Æ®¿öÅ©
¼ºñ½º¸¦ À̸§Áþ°í ã±â À§ÇØ ÀϰüµÈ ¹æ¹ýÀ» Á¦°øÇÑ´Ù.
Java Naming and Directory Interface
JDBC µ¥ÀÌÅͺ£À̽º Ä¿³Ø¼Ç(database connections), JMS Å¥(JMS queues)
ȤÀº ¿£ÅÍÇÁ¶óÀÌÁî ºó Ȩ ÀÎÅÍÆäÀ̽º(enterprise bean home interfaces)¿Í °°Àº ³×Æ®¿öÅ©
°´Ã¼¿¡ ¾×¼¼½ºÇϱâ À§ÇØ JNDI ¸¦ »ç¿ëÇÏ´Â ¹æ¹ýÀ» ÀÌ¹Ì ¾Ë°í ÀÖÀ» °ÍÀÌ´Ù. »ç½Ç JNDI ´Â À̸§µéÀ»
°´Ã¼·Î ¸ÅÇÎÇÏÁö¸¸, JNDI ´Â ¸í¸í ¼ºñ½º°¡ ¾Æ´Ï´Ù. ±×º¸´Ùµµ JNDI´Â ¸í¸í ¼ºñ½º¸¦ Ç¥ÁØÀûÀÎ ¹æ¹ýÀ¸·Î
¾×¼¼½º°¡´ÉÇÏ°Ô ÇÏ¸é¼ ±âÁ¸ÀÇ ¸í¸í ¼ºñ½º¸¦ °¨Ãß´Â(wrap) ÀÎÅÍÆäÀ̽ºµéÀÇ ÁýÇÕÀÌ´Ù.
´ÙÀ½ ±×¸²¿¡¼ º¸´Â °Í°ú °°ÀÌ, ÀÚ¹Ù ¾ÖÇø®ÄÉÀ̼ÇÀº JNDIÀÎÅÍÆäÀ̽º¸¦ ÀÌ¿ëÇØ¼ °¨ÃçÁø(underlying)
¸í¸í ¼ºñ½º¿¡ ¾×¼¼½ºÇÑ´Ù.
¾ÖÇø®ÄÉÀ̼dz»ÀÇ ÄÚµå´Â JNDI ÀÎÅÍÆäÀ̽º ¸Þ¼Òµå¸¦ È£ÃâÇÑ´Ù. ÀÌ·¯ÇÑ ¸Þ¼Òµå¸¦ ±¸ÇöÇÏ´Â °´Ã¼µéÀº
JNDI ÀÎÅÍÆäÀ̽º È£ÃâÀ» °¨ÃçÁø ¸í¸í ¼ºñ½º¿¡ ´ëÇÑ È£Ãâ·Î ¸ÅÇÎÇÑ´Ù. ¶ÇÇÑ JNDI´Â ÅëÇÕµÈ ¸í¸í ±ÔÄ¢µµ
Á¤ÀÇÇÑ´Ù. JNDI À̸§µéÀº JNDIÀÇ ¸í¸í °ü¸®ÀÚ(naming manager)¿¡ ÀÇÇØ °¨ÃçÁø ¸í¸í ¼ºñ½ºÀÇ
¸í¸í ±ÔÄ¢À» µû¸£´Â À̸§À¸·Î ¸ÅÇεȴÙ.
javax.naming ÆÐŰÁö´Â ´ÙÀ½°ú °°Àº ¸í¸í°ú µð·ºÅ丮¿¡ °ü·ÃµÈ ÀÎÅÍÆäÀ̽ºµéÀ»
Æ÷ÇÔÇÑ´Ù.
javax.naming.Context´Â ÄÁÅØ½ºÆ®¸¦ ³ªÅ¸³»´Âµ¥, À̰ÍÀº ¹ÙÀεù°ú
¼ºêÄÁÅØ½ºÆ®¸¦ ã°í °ü¸®ÇÏ´Â µ¥¿¡ ¾²ÀδÙ.
javax.naming.Name´Â ¸í¸í ¼ºñ½ºÀÇ À̸§À» Ãß»óÀûÀ¸·Î Ç¥Çö(abstract
representation)ÇÏ°Ô ÇØÁØ´Ù.
javax.naming.BindingÀº ¸í¸í ¼ºñ½º À̸§°ú ±× À̸§¿¡ ¹ÙÀεùµÈ
°´Ã¼ÀÇ Ç¥ÇöÀÌ´Ù.
javax.naming.Reference´Â °´Ã¼ÀÇ º¹»çº»À» ¾ò¾î³¾ ¼ö ÀÖ°Ô
ÇØÁØ´Ù.
ÄÁÅØ½ºÆ® ã±â
ÀÌ ÆÁ¿¡ Æ÷ÇÔµÈ »ùÇÃÄÚµå´Â JNDIÄÁÅØ½ºÆ®ÀÇ ÄÁÅÙÃ÷¸¦ ¿°ÅÇÏ´Â ¹æ¹ýÀ» º¸¿©ÁØ´Ù. »ùÇà ¼ºí¸´
Oct2003Servlet´Â »ç¿ëÀÚ°¡ ÀÔ·ÂÇÑ À̸§¿¡ ÇØ´çÇÏ´Â JNDI namespace³»ÀÇ
ÄÁÅÙÃ÷¸¦ ã°í µð½ºÇ÷¹ÀÌÇÑ´Ù.
ÄÁÅØ½ºÆ®¸¦ ¾ò´Â °¡Àå ½¬¿î ¹æ¹ýÀº javax.naming.InitialContext
Ŭ·¡½ºÀÇ ÀνºÅϽº¸¦ »ý¼ºÇÏ´Â °ÍÀÌ´Ù. »ùÇà ¼ºí¸´ ¸Þ¼Òµå jndiList ´Â ÃÖÃÊÀÇ
ÄÁÅØ½ºÆ®¸¦ »ý¼ºÇÏ°í ¸í¸íµÈ °´Ã¼¸¦ ãÀ» ¶§ ±×°ÍÀ» »ç¿ëÇÑ´Ù.
InitialContext ic = new InitialContext();
Object objFound = ic.lookup(name);
¿©±â¿¡¼ nameÀº »ç¿ëÀÚ°¡ HTMLÆäÀÌÁö¿¡¼ ÀÔ·ÂÇÑ HTTP GET
ȤÀº POST º¯¼ö¸í(vriable name)ÀÌ´Ù. ¸¸¾à ¸®ÅÏµÈ °´Ã¼°¡ Context
¶ó¸é jndiList ´Â listContext ¸Þ¼Òµå¸¦ È£ÃâÇϰí,
ListContext¸Þ¼Òµå´Â ÁÖ¾îÁø À̸§¿¡ ÇØ´çÇÏ´Â ÄÁÅØ½ºÆ®ÀÇ ÄÁÅÙÃ÷¸¦ ¿°ÅÇÑ´Ù.
°´Ã¼°¡ DataSourceÀ̸é, jndiList ´Â ¸í¸íµÈ
µ¥ÀÌÅÍ ¼Ò½º¿¡ °üÇÑ Á¤º¸¸¦ Ãâ·ÂÇÑ´Ù.
listContext ¸Þ¼Òµå´Â ÁÖ¾îÁø JNDI ÄÁÅØ½ºÆ®ÀÇ ÄÁÅÙÃ÷¸¦ ÇϳªÀÇ Å×À̺í·Î
Ãâ·ÂÇÑ´Ù. À̸¦ À§Çؼ´Â Context ¸Þ¼Òµå listBindings
¸¦ ÀÌ¿ëÇϴµ¥, ÀÌ´Â NamingEnumeration ¸¦ ¸®ÅÏÇÑ´Ù.
NamingEnumeration ne = context.listBindings("");
NamingEnumeration ´Â
java.util.Enumeration¸¦ ±¸ÇöÇÑ °ÍÀÌ´Ù. NamingEnumeration.next
¸Þ¼Òµå´Â javax.naming.Binding ŸÀÔÀÇ °´Ã¼¸¦ ¸®ÅÏÇϰí, ÀÌ´Â °´Ã¼ÀÇ
À̸§°ú °´Ã¼ÀÇ Å¬·¡½º À̸§ ±×¸®°í ÀúÀåµÈ °´Ã¼ ÀÚü¸¦ Æ÷ÇÔÇÑ´Ù.
while (ne.hasMore()) {
Binding ncp = (Binding)ne.next();
String objName = ncp.getName();
String objClass = ncp.getClassName();
Object objObj = ncp.getObject();
...
}
´Ü¼øÈ÷ Context³»ÀÇ À̸§µé°ú Ŭ·¡½ºÀ̸§À» º¸°íÀÚ ÇÑ´Ù¸é
Context.list ¸Þ¼Òµå¸¦ ÀÌ¿ëÇÒ ¼ö ÀÖ´Ù. Context.listµµ
NamingEnumeration¸¦ ¸®ÅÏÇÏÁö¸¸, ±×°ÍÀÌ ´ã°íÀÖ´Â Ä÷¢¼ÇÀº BindingÀÌ
¾Æ´Ñ NameClassPair ŸÀÔÀÌ´Ù. NameClassPair´Â
À̸§°ú °´Ã¼ Ŭ·¡½º À̸§¸¸À» Æ÷ÇÔÇÑ´Ù.
»ùÇþÖÇø®ÄÉÀ̼ÇÀ» ¹èÆ÷ÇÏ°í ½ÇÇàÇÏ´Â ¹æ¹ýÀº »ùÇÃÄÚµå ½ÇÇàÇϱâ
¸¦ Âü°íÇÑ´Ù.
¾ÖÇø®ÄÉÀ̼ÇÀ» ½ÇÇàÇϸé, ´ÙÀ½°ú °°Àº ½ÃÀÛÆäÀÌÁö¸¦ º¸°Ô µÈ´Ù.
ÄÁÅØ½ºÆ®¸¦ ÀÔ·ÂÇϰųª, ÅØ½ºÆ® Çʵ带 ºó »óÅ·Π³öµÎ°í ¸í¸íµÈ ÄÁÅØ½ºÆ®ÀÇ ÄÁÅÙÃ÷¸¦ º¸±â À§ÇØ
List¹öưÀ» Ŭ¸¯ÇÑ´Ù. ¿¹¸¦ µé¸é jdbc ÀÇ ¿£Æ®¸®´Â ´ÙÀ½°ú °°Àº ȸéÀ» µð½ºÇ÷¹ÀÌÇÑ´Ù.
JNDI ¿¡ °üÇÑ ´õ ÀÚ¼¼ÇÑ Á¤º¸´Â JNDI
Æ©Å丮¾ó¸¦ Âü°íÇÑ´Ù.
ENTITY RESOLVER ÀÛ¼ºÇϱâ
XMLÀ» ÀÛ¼ºÇØ º» ÀûÀÌ ÀÖ´Ù¸é, ampersand (&)°ú less-than (<)°°Àº
ij¸¯Å͸¦ Ç¥ÇöÇϱâ À§ÇØ XMLÀÌ »ç¿ëÇÏ´Â ½Éº¼À» ºÃÀ» °ÍÀÌ´Ù. ÀÌ ½Éº¼À» ¿£ÅÍÆ¼¶ó°í ºÎ¸¥´Ù. XML¿¡¼,
¿£ÅÍÆ¼´Â Ç×»ó &·Î ½ÃÀÛÇØ¼ ¼¼¹ÌÄÝ·Ð(;)À¸·Î ³¡³´Ù. ¿£ÅÍÆ¼´Â XML´ÙÅ¥¸ÕÆ®¸¦ ÆÄ¶ó¹ÌÅÍ·Î ³ªÅ¸³»±â À§ÇØ
»ç¿ëµÈ´Ù. ÀÌ ÆÁÀº ´ÙÅ¥¸ÕÆ®ÀÇ DTD¿¡ ¿£ÅÍÆ¼¸¦ Á¤ÀÇÇÔÀ¸·Î½á XML´ÙÅ¥¸ÕÆ®¸¦ ÆÄ¶ó¹ÌÅÍ·Î ³ªÅ¸³»´Â ¹æ¹ýÀ»
¼³¸íÇÑ´Ù. XML´ÙÅ¥¸ÕÆ®¿¡¼ ¾î¶² ÅØ½ºÆ®°¡ ¿£ÅÍÆ¼ ·¹ÆÛ·±½º¸¦ ´ëüÇÒ °ÍÀÎÁö¸¦ Á¶Á¤ÇÏ´Â entity resolver¸¦
ÀÛ¼ºÇÏ´Â ¹æ¹ýµµ ¼³¸íÇÑ´Ù.
¿£ÅÍÆ¼ÀÇ Á¤ÀÇ
XML´ÙÅ¥¸ÕÆ®ÀÇ ¿©·¯ °÷¿¡¼ ¹Ýº¹»ç¿ëµÇ´Â ÅØ½ºÆ®´Â ¿£ÅÍÆ¼·Î Ç¥ÇöÇÏ´Â °ÍÀÌ ´õ ³´´Ù. ¿£ÅÍÆ¼´Â ´ÙÅ¥¸ÕÆ®ÀÇ
DTD¿¡ ½±°Ô Á¤ÀǵȴÙ. ¿£ÅÍÆ¼¸¦ Á¤ÀÇÇÏ´Â ¿¹Á¦´Â »ùÇÃÄÚµå ÆÄÀÏ misc/data.xml¿¡¼
º¼ ¼ö ÀÖ´Ù.
<!ENTITY helloWorld "Hello, world!">
& °ú <¸¦ »ç¿ëÇÏ´Â °Íó·³,
¿£ÅÍÆ¼´Â XMLÀÚü¿¡ »ç¿ëµÉ ¼öµµ ÀÖ´Ù. data.xmlÆÄÀÏ¿¡¼ Á¦°øÇÏ´Â ¿¹°¡ ÀÖ´Ù.
<This>
<That>&helloWorld;</That>
<That>&helloWorld;</That>
...
</This>
XML ÆÄ¼°¡ ÀÌ ÅØ½ºÆ®¸¦ ÀÐÀ¸¸é, &¿Í ;»çÀÌÀÇ ¸ðµç °ÍÀ» ¿£ÅÍÆ¼ÀÇ ÄÁÅÙÃ÷·Î ´ëüÇÑ´Ù.
<This>
<That>Hello, world!</That>
<That>Hello, world!</That>
...
</This>
°ªÀÌ DTD¿¡ Á÷Á¢ÀûÀ¸·Î Á¤ÀÇµÈ ¿£ÅÍÆ¼´Â ³»ºÎ(internal)¿£ÅÍÆ¼¶ó°í ºÒ¸°´Ù. À̰ÍÀº CÇÁ·Î±×·¥ÀÇ
#define°ú ¸Å¿ì Èí»çÇÏ´Ù. ³»ºÎ ¿£ÅÍÆ¼´Â ÇÁ·ÎÁ§Æ®ÀÇ ´ÜÀÏ Àå¼Ò¿¡ ¹Ýº¹ÀûÀ¸·Î »ç¿ëµÇ´Â ÀúÀÛ±Ç °ø°í¿Í
°°Àº ÅØ½ºÆ®¸¦ »ðÀÔÇϴµ¥ À¯¿ëÇÏ´Ù. ³»ºÎ ¿£ÅÍÆ¼ÀÇ Á¤ÀǸ¦ ¾÷µ¥ÀÌÆ®ÇÏ¸é ´ëüµÈ ÅØ½ºÆ®¸¦ ¸ðµÎ ¹Ù²Ù°Ô µÈ´Ù.
File Contents Æ÷ÇÔÇϱâ
¶Ç ´Ù¸¥ ¿£ÅÍÆ¼´Â ¿ÜºÎ(External)¿£ÅÍÆ¼·Î¼ ½ºÆ®¸µ ´ë½Å¿¡ ÆÄÀÏÀ¸·ÎºÎÅÍ ±×°ÍÀÇ ´ëü ¹®ÀÚ¿À» ¹Þ´Â´Ù.
¿ÜºÎ¿£ÅÍÆ¼´Â CÀÇ #include¿Í ºñ½ÁÇÏ´Ù. ¿ÜºÎ ¿£ÅÍÆ¼¸¦ À§ÇÑ ´ëü ¹®ÀÚ¿(replacement text)Àº
ÆÄÀÏÀÇ Àüü ÄÁÅÙÃ÷ÀÌ´Ù.
¿ÜºÎ ¿£ÅÍÆ¼ Áß ÇÑ Á¾·ù´Â ¿£ÅÍÆ¼ÀÇ À̸§À» Áþ±â À§ÇØ PUBLIC ½Äº°ÀÚ¸¦ »ç¿ëÇÑ´Ù. ±×¸®°í ´ëü ÅØ½ºÆ®¸¦
ãÀ» À§Ä¡¸¦ XMLÇÁ·Î¼¼½Ì ÇÁ·Î±×·¥¿¡ ¸í·ÉÇϱâ À§ÇØ ½Ã½ºÅÛ ½Äº°ÀÚ¸¦ »ç¿ëÇÑ´Ù. »ùÇÃÄڵ忡¼ ÀÌ·¯ÇÑ ¹æ¹ýÀ¸·Î
4°³ÀÇ ¿ÜºÎ ¿£ÅÍÆ¼¸¦ Á¤ÀÇÇÏ´Â XML ÆÄÀÏ, data.xml¸¦ º¼ ¼ö ÀÖ´Ù.
<!ENTITY firstLine
PUBLIC "-//elucify//ejtt//oct2003//firstLine"
"english.props">
<!ENTITY secondLine
PUBLIC "-//elucify//ejtt//oct2003//secondLine"
"english.props">
<!ENTITY thirdLine
PUBLIC "-//elucify//ejtt//oct2003//thirdLine"
"english.props">
<!ENTITY lastLine
PUBLIC "-//elucify//ejtt//oct2003//lastLine"
"english.props">
°¢°¢ÀÇ ¿£ÅÍÆ¼´Â ±×°ÍÀÇ public idÀÎ °íÀ¯ÀÇ À̸§À» °®´Â´Ù. PUBLIC Ű¿öµå µÚ¿¡ ³ª¿À´Â ù¹øÂ°
½ºÆ®¸µÀÌ ¹Ù·Î ±×°ÍÀÌ´Ù. µÎ¹øÂ° ½ºÆ®¸µÀº ½Ã½ºÅÛ id·Î¼ ´ëü ÅØ½ºÆ®¸¦ ãÀ» À§Ä¡¸¦ ƯÁ¤ ½Ã½ºÅÛ ½Äº°ÀÚ¿¡
Á¦°øÇÑ´Ù.
&firstLine)°ú °°Àº ¿£ÅÍÆ¼ ·¹ÆÛ·±½º°¡ XML´ÙÅ¥¸ÕÆ®¿¡ »ç¿ëµÉ ¶§¿¡´Â, XML ÇÁ·Î¼¼¼°¡
´ëü ÅØ½ºÆ®¸¦ ãÀ» ¹æ¹ýÀ» ¹Ýµå½Ã ÀÎÁöÇϰí ÀÖ¾î¾ß ÇÑ´Ù. À̸¦ ¿£ÅÍÆ¼ ·¹ÆÛ·±½º¸¦ ÇØ¼®(resolve)ÇÑ´Ù°í
ÇÑ´Ù.
µðÆúÆ®·Î, ´ëºÎºÐÀÇ XML ÇÁ·Î¼¼¼´Â ¿£ÅÍÆ¼ÀÇ ´ëü ÅØ½ºÆ®¸¦ °Ë»öÇϱâ À§ÇØ URLÀ̳ª ÆÄÀϽýºÅÛ °æ·ÎÀ»
½Ã½ºÅÛ ID·Î »ç¿ëÇÑ´Ù. ÇÏÁö¸¸ °£È¤ XMLÇÁ·Î¼¼¼°¡ ·¹ÆÛ·±½º¸¦ ¸®Á¹ºêÇÏ´Â ¹æ¹ýÀ» Á¦¾îÇØ¾ßÇÒ Çʿ䰡 ÀÖ´Ù.
°¡·É, ½Ã½ºÅÛ id°¡ URLÀε¥ ÀÎÅͳݿ¡ ¿¬°áµÇ¾î ÀÖÁö ¾Ê´Ù¸é ¾î¶»°Ô ÇÒ °ÍÀΰ¡? SAX ¿Í DOM ÆÄ¼s
°¡ ±â¹ÝÇϰí ÀÖ´Â SAX ÀÎÅÍÆäÀ̽º´Â entity resolver Ŭ·¡½º(entity resolver class)¸¦
Á¤ÀÇÇÔÀ¸·Î½á ¿ÜºÎ ¿£ÅÍÆ¼¸¦ À§ÇÑ ´ëü ÅØ½ºÆ®¸¦ Á¦¾îÇÒ ¼ö ÀÖ°Ô ÇØÁØ´Ù.
¿£ÅÍÆ¼ ·¹ÆÛ·±½º¸¦ ResolveÇϱâ
org.sax.xml.EntityResolverÀÎÅÍÆäÀ̽º¸¦ ±¸ÇöÇÏ´Â entity
resolver´Â signature°¡ ´ÙÀ½°ú °°Àº ´ÜÀÏ ¸Þ¼Òµå resolveEntity¸¦
°®´Â´Ù.
public InputSource resolveEntity(String publicID,
String systemID)
throws SAXException;
ÀÌ ¸Þ¼Òµå´Â Àμö·Î ¿£ÅÍÆ¼ÀÇ public id ³ª system id¸¦ ¹Þ´Â´Ù.
À̰͵éÀº <!ENTITY>¼±¾ð »ó´ÜºÎÀÇ Å°¿öµå PUBLIC µÚ¿¡ ¿À´Â
ù¹øÂ°, µÎ¹øÂ° ÀμöµéÀÌ´Ù. ÀÌ´Â org.sax.xml.InputSource ÀÎÅÍÆäÀ̽º¸¦
±¸ÇöÇÏ´Â °´Ã¼¸¦ ¸®ÅÏÇÑ´Ù. entity resolver´Â ¿£ÅÍÆ¼¸¦ À§ÇÑ ´ëü ÅØ½ºÆ®ÀÇ À§Ä¡¸¦ Á¤Çϱâ À§ÇØ
public °ú system id¸¦ »ç¿ëÇÑ´Ù. ±×¸®°í ÆÄ¼°¡ ´ëü ÅØ½ºÆ®¸¦ ¾ò±â À§ÇØ ¾×¼¼½ºÇÏ´Â InputSource
°´Ã¼¸¦ ¸®ÅÏÇÑ´Ù.
ÀÌ ±ÛÀÇ »ùÇà ÄÚµå´Â PropertiesŬ·¡½º¸¦ ÀÌ¿ëÇØ¼ Java ¼Ó¼º(property)
ÆÄÀÏÀ» Àд entity resolver PropertyEntityResolver
¶ÇÇÑ Æ÷ÇÔÇϰí ÀÖ´Ù. ÆÄÀÏÀ» ·ÎµåÇÏ°í ´ëü ÅØ½ºÆ®¸¦ °Ë»öÇÏ´Â ÄÚµå´Â ´ÙÀ½°ú °°´Ù.
// Load properties from a URL.
protected void loadProps(String urlString)
throws MalformedURLException, IOException {
URL url = new URL(urlString);
URLConnection con = url.openConnection();
_props = new Properties();
_props.load(con.getInputStream());
}
// Given the name of a property,
// return the property's value
public InputSource resolveEntity(
String publicID, String systemID)
throws SAXException {
// Load properties from URL referenced
// by system id.
// Assume system id is the same for all symbols.
if (_props == null) {
try {
loadProps(systemID);
} catch (Exception e) {
throw new SAXException(e);
}
}
// Extract property name from public ID
int index = publicID.lastIndexOf("//");
String value = "???PropertyNotFound???";
if (index >= 0) {
value = _props.getProperty(
publicID.substring(index + 2));
}
StringReader sr = new StringReader(value);
return new InputSource(sr);
}
»ùÇà Ŭ·¡½º EntityResolverDemo°¡
DOM ÆÄ¼(parser)¸¦ »ý¼ºÇϸé, ´ÙÀ½°ú °°ÀÌ Å¬·¡½º¸¦ À§ÇÑ entity resolver¸¦ PropertyEntityResolverÀÇ
ÀνºÅϽº·Î ¼³Á¤ÇÑ´Ù.
// Create the parser, and set the error handler
// and entity resolver
DocumentBuilder db = dbf.newDocumentBuilder();
db.setErrorHandler(this);
PropertyEntityResolver propertyEntityResolver =
new PropertyEntityResolver();
db.setEntityResolver(propertyEntityResolver);
ÆÄ¼°¡ ¿ÜºÎ ¿£ÅÍÆ¼ ·¹ÆÛ·±½º¸¦ ¸¸³ª°Ô µÇ¸é ÆÄ¼´Â PropertyEntityResolver.resolveEntity¸¦
È£ÃâÇϰí, ±×°Í¿¡ ´ëÇÑ ÀÀ´äÀ¸·Î ´ëü ÅØ½ºÆ®¸¦ Æ÷ÇÔÇϰí ÀÖ´Â InputSource¸¦
¹Þ´Â´Ù. ±×¸®°í ³ª¼ ´ëü ÅØ½ºÆ®¸¦ ÀÐ°í ±×°ÍÀ» ¿£ÅÍÆ¼ ·¹ÆÛ·±½º°¡ ¹ß»ýÇÑ result XML¾ÈÀÇ ±× ·¹ÆÛ·±½º¿Í
ġȯÇÑ´Ù.
»ùÇà ¾ÖÇø®ÄÉÀ̼ÇÀ» ¹èÆ÷ÇÏ°í ½ÇÇàÇÏ´Â ¹æ¹ýÀº »ùÇÃÄÚµå ½ÇÇàÇϱ⸦
Âü°íÇÑ´Ù. ERDemo ÇÁ·Î±×·¥À» ½ÇÇàÇϴµ¥ ÇÊ¿äÇÑ »çÇ×Àº À妽ºÆäÀÌÁö¸¦ Âü°íÇÑ´Ù.
english.propsÆÄÀÏÀ» ÁöÁ¤Çϰí ÀÖ´Â data.xmlÀ»
ÀÌ¿ëÇØ¼ »ùÇà ÇÁ·Î±×·¥À» ½ÇÇàÇØ º¸ÀÚ.
- entity resolver jar ÆÄÀϷκÎÅÍ µ¥ÀÌÅÍ ÆÄÀÏÀ» ÃßÃâÇÏÀÚ,
ERDemo.jar:
jar xvf ERDemo.jar misc
CLASSPATH¿¡ ERDemo.jar¸¦ Ãß°¡ÇÑ´Ù.Put
ERDemo.jar in your CLASSPATH.
- ¿¹Á¦¸¦ ½ÇÇàÇÑ´Ù.
java ERDemo misc/data.xml
ERDemo ÇÁ·Î±×·¥À» ½ÇÇàÇϸé, ´ÙÀ½°ú °°Àº ¿µ¹® ´ëü ÅØ½ºÆ®¸¦ Æ÷ÇÔÇÑ XML´ÙÅ¥¸ÕÆ®¸¦
»ý¼ºÇÏ°Ô µÈ´Ù.
<?xml version="1.0" encoding="UTF-8"?>
<This>
<That>Hello, world!</That>
<That>Hello, world!</That>
<That>Line 1: This line is written in English.
</That>
<That>Line 2: How are you?</That>
<That>Line 3: What would you like to eat?</That>
<TheOther>Last line: I must say goodbye.
</TheOther>
</This>
±× ´ÙÀ½¿£ data.xml¸¦ ÆíÁýÇÏ°í ¸ðµç <!ENTITYÁ¤ÀÇ¿¡ ´ÙÀ½°ú
°°ÀÌ "english.props"¸¦ "spanish.props"
·Î ´ëÃ¼ÇØ º¸ÀÚ.
<!ENTITY firstLine
PUBLIC "-//elucify//ejtt1003//firstLine"
"spanish.props">
<!ENTITY secondLine
PUBLIC "-//elucify//ejtt1003//secondLine"
"spanish.props">
<!ENTITY thirdLine
PUBLIC "-//elucify//ejtt1003//thirdLine"
"spanish.props">
<!ENTITY lastLine
PUBLIC "-//elucify//ejtt1003//lastLine"
"spanish.props">
ÅØ½ºÆ®´Â ´ÙÀ½°ú °°ÀÌ ¹Ù²ð °ÍÀÌ´Ù.
<?xml version="1.0" encoding="UTF-8"?>
<This>
<That>Hello, world!</That>
<That>Hello, world!</That>
<That>Line 1: Esta linea esta escrito en Espagnol.
</That>
<That>Line 2: Como estas?</That>
<That>Line 3: Que quieres cenar?</That>
<TheOther>Last line: Hay que decir adios!
</TheOther>
</This>
»ùÇà ÄÚµå´Â ºÒ¾î¿Í µ¶¾î·Î µÈ ¼Ó¼º ÆÄÀϵµ Æ÷ÇÔÇϰí ÀÖÀ¸´Ï, ÀÌ·¯ÇÑ ÆÄÀϵéÀ» ÀÌ¿ëÇØ¼ »ùÇà Äڵ带 ½ÇÇàÇØº¸´Â
°Íµµ ÁÁÀº »ý°¢ÀÌ´Ù.
JNDI¿¡ ´ëÇÑ ÀÚ¼¼ÇÑ Á¤º¸´Â JNDI
Æ©Å丮¾óÀ» Âü°íÇÑ´Ù.
»ùÇÃÄÚµå ½ÇÇàÇϱâ
ÀÌ ÆÁÀÇ »ùÇÃ
¾ÆÄ«À̺긦 ´Ù¿î·Îµå¹ÞÀÚ. ¾ÖÇø®ÄÉÀ̼ÇÀÇ ÄÁÅØ½ºÆ® ·çÆ®´Â ttoct2003 À̰í, ´Ù¿î·ÎµåµÈ EARÆÄÀÏÀº
¿Ï¼ºµÈ »ùÇÿ¹Á¦Äڵ带 Æ÷ÇÔÇÑ´Ù.
»ùÇÃÇÁ·Î±×·¥À» ½ÇÇàÇϱâ À§Çؼ´Â ´ÙÀ½ °úÁ¤ÀÌ ÇÊ¿äÇÏ´Ù
- j2ee¼¹ö¿Í µ¥ÀÌÅͺ£À̽º ¼¹ö ¸ðµÎ ½ÇÇà ÁßÀÎÁö È®ÀÎÇÏÀÚ. J2EE Reference ImplementationÀ»
À§Çؼ´Â ´ÙÀ½ 2°¡Áö¸¦ ¸ðµÎ ½ÇÇàÇØ¾ß ÇÑ´Ù.
j2ee -verbose
and
cloudscape -start
- ¾Õ¼ ¼³¸íÇÑ °Íó·³ earÆÄÀÏÀ» ´Ù¿î·Îµå ¹ÞÀÚ.
- ¼¹ö¿¡ earÆÄÀÏÀ» ¹èÆ÷ÇÏÀÚ. »ç¿ëÀÚ´Â deploytool ÇÁ·Î±×·¥À» ÀÌ¿ëÇØ¼ J2EE Reference
Implementation¿¡ ¾ÖÇø®ÄÉÀÌ¼Ç ¾ÆÄ«À̺ê(ttoct2003.ear)¸¦ ¹èÆ÷ÇÒ ¼ö ÀÖ´Ù.
$J2EE_HOME/deploytool -deploy ttoct2003.ear localhost
·ÎÄà ȣ½ºÆ®(localhost)¸¦ ¼¹ö°¡ ¼³Ä¡µÇ´Â È£½ºÆ®ÀÇ À̸§À¸·Î ´ëüÇÏÀÚ. ´ÜÀÏ ¸Ó½Å¿¡ ÀνºÅçÇÒ
¶§, È£½ºÆ®À̸§Àº ÀϹÝÀûÀ¸·Î(±ÛÀÚ ¶æ´ë·Î) localhost°¡ µÈ´Ù.
- ¾ÖÇø®ÄÉÀ̼ÇÀ»
http://localhost:8000/ttoct2003¿¡
¾×¼¼½ºÇÏÀÚ.
Reference Implementationº¸´Ù´Â J2EEÀÇ specificationÀ» µû¸£´Â ±â´É
±¸ÇöÀÇ Ãø¸é¿¡¼ »ç¿ëÇϰíÀÚ ÇÑ´Ù¸é »ç¿ëÀÚÀÇ Ç÷§Æû¿¡ ¾ÖÇø®ÄÉÀ̼ÇÀ» ¹èÆ÷Çϱâ À§ÇØ J2EE ÇÁ·Î´öÆ®ÀÇ ¹èÆ÷
Åø(deployment tool)À» »ç¿ëÇÑ´Ù.
¾ÖÇø®ÄÉÀ̼ÇÀÇ ½ÇÇà¿¡ ´ëÇÑ Áö½Ã»çÇ×Àº index.html welcome fileÀ»
Âü°íÇÑ´Ù.
|