The Jakarta Project
    The Tomcat Servlet/JSP Container

Links

Top Level Elements

Connectors

Containers

Nested Components

The DefaultContext Component

¼Ò°³(Introduction)

DefaultContext ¿¤¸®¸ÕÆ®´Â Context¿¡ ´ëÇÑ ¼³Á¤¼¼ÆÃÀÇ ¼­ºê¼ÂÀ» ³ªÅ¸³À´Ï´Ù. ÀÌ ¿¤¸®¸ÕÆ®´Â ÀÚµ¿À¸·Î »ý¼ºµÇ´Â Contextµé¿¡ ´ëÇÑ µðÆúÆ® ¼³Á¤ ÇÁ·ÎÆÛƼ(default configuration properties)¸¦ ³ªÅ¸³»±â À§ÇØ Engine ¶Ç´Â Host ¿¤¸®¸ÕÆ® ³»¿¡ Æ÷ÇÔ½Ãų ¼ö ÀÖ½À´Ï´Ù.

Catalina°¡ ¿©±â¿¡¼­ ÀúÀåÇÑ ¼³Á¤ ÇÁ·ÎÆÛƼ¸¦ ±Ù°Å·Î ÇÏ¿© ÀÚµ¿À¸·Î Context¸¦ »ý¼ºÇØ ÁÖ´Â »óȲ¿¡ ´ëÇÑ ÀÚ¼¼ÇÑ Á¤º¸´Â ¾îÇø®ÄÉÀ̼ÇÀÇ ÀÚµ¿¹èÄ¡(Automatic Application Deployment)¿Í »ç¿ëÀÚ À¥¾îÇø®ÄÉÀ̼Ç(User Web Applications)À» Âü°íÇϽʽÿÀ.

¼Ó¼º(Attributes)
°øÅë¼Ó¼º(Common Attributes)

DefaultContextÀÇ ¸ðµç ±¸Çöü´Â ´ÙÀ½ ¼Ó¼ºµéÀ» Áö¿øÇÏ°Ô µË´Ï´Ù:

¼Ó¼º¼³¸í
cookies

true(µðÆúÆ®)·Î ÁöÁ¤Çϸé Ŭ¶óÀÌ¾ðÆ®°¡ Äí۸¦ Áö¿øÇÏ´Â °æ¿ì ¼¼¼ÇÈ®ÀÎÀÇ Åë½Å¼ö´Ü(session identifier communication)À¸·Î Äí۸¦ »ç¿ëÇÕ´Ï´Ù. false·Î ÁöÁ¤ÇÏ¸é ¼¼¼ÇÈ®ÀÎÀÇ Åë½Å¼ö´ÜÀ¸·Î ÄíŰ »ç¿ëÀ» ÇÏÁö ¾Ê°í, ¾îÇø®ÄÉÀ̼ǿ¡ ÀÇÇÑ URL ´Ù½Ã¾²±â(URL rewriting)¿¡¸¸ ÀÇÁ¸ÇÑ´Ù´Â ÀǹÌÀÔ´Ï´Ù.

crossContext

true·Î ÁöÁ¤Çϸé ÀÌ ¾îÇø®ÄÉÀ̼ǿ¡¼­ ServletContext.getContext() È£ÃâÀ» ÅëÇØ ÀÌ °¡»óÈ£½ºÆ®¿¡¼­ ½ÇÇàÁßÀÎ ´Ù¸¥ À¥¾îÇø®ÄÉÀ̼ǿ¡ ´ëÇÑ ¿äû µð½ºÆÐÃÄ(request dispatcher)¸¦ ¼º°øÀûÀ¸·Î ¾òÀ» ¼ö ÀÖ½À´Ï´Ù. º¸¾È»óÀÇ ÀÌÀ¯·Î false(µðÆúÆ®)·Î ÁöÁ¤Çϸé getContext()´Â ¾ðÁ¦³ª nullÀ» ¹ÝȯÇÏ°Ô µË´Ï´Ù.

reloadable

true·Î ÁöÁ¤Çϸé, Catalina´Â /WEB-INF/classes/¿Í /WEB-INF/lib ¾È Ŭ·¡½º µéÀÇ º¯°æ¿©ºÎ¸¦ °¨½ÃÇÏ´Ù°¡, º¯°æÀÌ ¹ß°ßµÇ¸é À¥¾îÇø®ÄÉÀ̼ÇÀ» ÀÚµ¿À¸·Î ÀçÀûÀç(reload)ÇÕ´Ï´Ù. ÀÌ ±â´ÉÀº °³¹ßÁß¿¡´Â ¸Å¿ì À¯¿ëÇÏÁö¸¸ ¾ó¸¶°£ÀÇ ½ÇÇàºÎÇÏ(runtime overhead)°¡ ¹ß»ýÇϹǷÎ, ½ÇÁ¦ ¿î¿µÇÒ ¿ëµµ·Î ¾îÇø®ÄÉÀ̼ÇÀ» ¹èÄ¡(deploy)ÇÒ ¶§´Â »ç¿ëÇÏÁö ¾Êµµ·Ï ÇÕ´Ï´Ù. ±×·¯³ª ÀÌ¹Ì ¹èÄ¡°¡ ³¡³­ ¾îÇø®ÄÉÀ̼ÇÀÌ¶óµµ Manager À¥¾îÇø®ÄÉÀ̼ÇÀ» ÀÌ¿ëÇϸé ÇÊ¿äÇÒ ¶§ ÀçÀûÀç Çϵµ·Ï ÇÒ ¼ö ÀÖ½À´Ï´Ù.

wrapperClass

ÀÌ ÄÁÅØ½ºÆ®·Î °ü¸®ÇÒ ¼­ºí¸´ µé¿¡ ´ëÇØ »ç¿ëÇÒ org.apache.catalina.Wrapper ±¸Çö Ŭ·¡½ºÀÇ Java Ŭ·¡½º¸íÀÔ´Ï´Ù. ÁöÁ¤ÇÏÁö ¾ÊÀ¸¸é µðÆúÆ®°ªÀÌ »ç¿ëµË´Ï´Ù.

±âº»±¸Çöü(Standard Implementation)

DefaultContextÀÇ ±âº»±¸Çöü´Â org.apache.catalina.core.DefaultContext Ŭ·¡½ºÀÔ´Ï´Ù. ÀÌ Å¬·¡½º´Â À§¿¡ ³ª¿­ÇÑ °øÅë¼Ó¼º ¿Ü¿¡µµ ´ÙÀ½°ú °°Àº Ãß°¡ ¼Ó¼ºÀ» Á¦°øÇÕ´Ï´Ù:

¼Ó¼º¼³¸í
swallowOutput

ÀÌ °ªÀÌ true À̸é, À¥¾îÇø®ÄÉÀ̼ǿ¡¼­ System.out°ú System.err À¸·Î º¸³»Áö´Â ¹ÙÀÌÆ® Ãâ·ÂÀº ¸ðµÎ À¥¾îÇø®ÄÉÀ̼ÇÀÇ ·Î°Å·Î ÀçÁöÁ¤(redirect)µË´Ï´Ù. ÀÌ °ªÀ» ÁöÁ¤ÇÏÁö ¾ÊÀ¸¸é false·Î ÀνÄÇÕ´Ï´Ù.

useNaming

ÀÌ À¥¾îÇø®ÄÉÀ̼ǿ¡¼­ Java2 Enterprise Edition (J2EE) Ç÷§Æû ±Ô¾à¿¡ ¸Â´Â JNDI InitialContext¸¦ »ç¿ë°¡´ÉÇÏ°Ô Çϵµ·Ï ¼³Á¤ÇÏ·Á¸é true(µðÆúÆ®°ª)·Î ÁöÁ¤ÇÕ´Ï´Ù.

Ưº°±â´É(Special Features)
ÄÁÅØ½ºÆ® ÆÄ¶ó¹ÌÅÍ(Context Parameters)

ÀÌ ¿¤¸®¸ÕÆ® ¾È¿¡ <Parameter> ¿¤¸®¸ÕÆ® µéÀ» Áßø½Ã۸é, À¥¾îÇø®ÄÉÀ̼ǿ¡¼­ ¼­ºí¸´-ÄÁÅØ½ºÆ® ÃʱâÈ­ ÆÄ¶ó¹ÌÅÍ(servlet context initialization parameters)·Î À̿밡´ÉÇÑ ÆÄ¶ó¹ÌÅÍÀ̸§-°ª µéÀ» ¼³Á¤ÇÒ ¼ö ÀÖ½À´Ï´Ù. ¿¹¸¦ µé¾î ´ÙÀ½°ú °°ÀÌ Çϸé ÃʱâÈ­ ÆÄ¶ó¹ÌÅ͸¦ »ý¼ºÇÒ ¼ö ÀÖ½À´Ï´Ù:

<DefaultContext ...>
  ...
  <Parameter name="companyName" value="My Company, Incorporated"
         override="false"/>
  ...
</DefaultContext>

ÀÌ´Â À¥¾îÇø®ÄÉÀÌ¼Ç ¹èÄ¡ µð½ºÅ©¸³ÅÍ(/WEB-INF/web.xml) ¾È¿¡ ´ÙÀ½°ú °°Àº ¿¤¸®¸ÕÆ®¸¦ Æ÷ÇÔ½ÃŰ´Â °Í°ú µ¿ÀÏÇÕ´Ï´Ù:

<context-param>
  <param-name>companyName</param-name>
  <param-value>My Company, Incorporated</param-value>
</context-param>

ÇÏÁö¸¸ ÀÌ °ªÀ» Ä¿½ºÅ͸¶ÀÌÁîÇϱâ À§ÇØ ¹èÄ¡ µð½ºÅ©¸³Å͸¦ º¯°æÇÒ ÇÊ¿ä´Â ¾ø½À´Ï´Ù.

<Parameter> ¿¤¸®¸ÕÆ®¿¡¼­´Â ´ÙÀ½°ú °°Àº ¼Ó¼ºÀ» »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù:

¼Ó¼º¼³¸í
description

ÀÌ ÄÁÅØ½ºÆ® ÃʱâÈ­ ÆÄ¶ó¹ÌÅÍ¿¡ ´ëÇÑ °£·«ÇÑ ¼³¸íÀ̸ç, »ý·«°¡´É

name

»ý¼ºÇÒ ÄÁÅØ½ºÆ® ÃʱâÈ­ ÆÄ¶ó¹ÌÅÍÀÇ À̸§.

override

À¥¾îÇø®ÄÉÀÌ¼Ç ¹èÄ¡ µð½ºÅ©¸³ÅÍ¿¡¼­ ¿©±â¿¡¼­ ÁöÁ¤ÇÑ ÃʱâÈ­ ÆÄ¶ó¹ÌÅÍ¿Í °°Àº À̸§ÀÇ <context-param>¸¦ ÁöÁ¤ÇßÀ» ¶§ ±× ÆÄ¶ó¹ÌÅÍ °ªÀÇ µ¤¾î¾²±â(override)¸¦ Çã¿ëÇÏÁö ¾ÊÀ¸·Á¸é false·Î ¼³Á¤ÇÕ´Ï´Ù. µðÆúÆ®°ªÀº trueÀÔ´Ï´Ù.

value

À¥¾îÇø®ÄÉÀ̼ǿ¡¼­ ServletContext.getInitParameter()À» È£ÃâÇÒ ¶§ ¹ÝȯÇÒ ÆÄ¶ó¹ÌÅÍ °ª.

ȯ°æÇ׸ñ(Environment Entries)

À¥¾îÇø®ÄÉÀ̼ǿ¡¼­ ȯ°æÇ׸ñÀÚ¿ø(environment entry resources)À¸·Î »ç¿ëÇÒ ¼ö ÀÖµµ·Ï Ç׸ñÀÇ À̸§-°ª µéÀ» ¼³Á¤ÇÒ ¼ö ÀÖ½À´Ï´Ù. ÀÌ ¼³Á¤Àº <Environment> Ç׸ñÀ» ÀÌ ¿¤¸®¸ÕÆ® ³»¿¡ Áßø½ÃŰ¸é µË´Ï´Ù. ¿¹¸¦ µé¾î ¾Æ·¡¿Í °°ÀÌ È¯°æÇ׸ñÀ» »ý¼ºÇÒ ¼ö ÀÖ½À´Ï´Ù:

<DefaultContext ...>
  ...
  <Environment name="maxExemptions" value="10"
         type="java.lang.Integer" override="false"/>
  ...
</DefaultContext>

ÀÌ´Â À¥¾îÇø®ÄÉÀÌ¼Ç ¹èÄ¡ µð½ºÅ©¸³ÅÍ(/WEB-INF/web.xml)¿¡¼­ ´ÙÀ½ÀÇ ¿¤¸®¸ÕÆ®¸¦ Æ÷ÇÔ½ÃŲ °Í°ú µ¿ÀÏÇÕ´Ï´Ù:

<env-entry>
  <env-entry-name>maxExemptions</param-name>
  <env-entry-value>10</env-entry-value>
  <env-entry-type>java.lang.Integer</env-entry-type>
</env-entry>

±×·¯³ª ÀÌ °ªÀ» Ä¿½ºÅ͸¶ÀÌÁîÇϱâ À§ÇØ ¹èÄ¡ µð½ºÅ©¸³Å͸¦ º¯°æÇÒ ÇÊ¿ä´Â ¾ø½À´Ï´Ù.

<Environment> ¿¤¸®¸ÕÆ®¿¡¼­´Â ´ÙÀ½°ú °°Àº ¼Ó¼ºµéÀ» »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù:

¼Ó¼º¼³¸í
description

(¼±ÅûçÇ×)ÀÌ È¯°æÇ׸ñ¿¡ ´ëÇÑ »ç¶÷ÀÌ Àб⠽¬¿î °£´ÜÇÑ ¼³¸í

name

»ý¼ºÇÒ È¯°æÇ׸ñÀÇ À̸§. java:comp/env ÄÁÅØ½ºÆ®¿¡ ´ëÇÑ »ó´ëÀûÀÎ À̸§ÀÔ´Ï´Ù.

override

À¥¾îÇø®ÄÉÀÌ¼Ç ¹èÄ¡ µð½ºÅ©¸³ÅÍ¿¡¼­ <env-entry>À¸·Î °°Àº À̸§ÀÇ È¯°æÇ׸ñÀ» ÁöÁ¤ÇÏ´Â °æ¿ì, ¿©±â¿¡¼­ ÁöÁ¤ÇÑ °ªÀ» µ¤¾î¾²±â(override) ÇÏÁö ¾Êµµ·Ï ÇÏ°í ½ÍÀ¸¸é false·Î ÁöÁ¤ÇÕ´Ï´Ù. ÀÌ °ªÀ» ÁöÁ¤ÇÏÁö ¾ÊÀ¸¸é µ¤¾î¾²±â°¡ Çã¿ëµË´Ï´Ù.

type

ÀÌ È¯°æÇ׸ñ¿¡ ´ëÇØ À¥¾îÇø®ÄÉÀ̼ÇÀÌ ¿¹»óÇÏ´Â ¿ÏÀüÇÑ(fully qualified) Java Ŭ·¡½º¸í. ¹Ýµå½Ã À¥¾îÇø®ÄÉÀÌ¼Ç ¹èÄ¡ µð½ºÅ©¸³ÅÍÀÇ <env-entry-type>ÀÇ ±ÔÄ¢¿¡ ¸Â´Â °ªÀ̾î¾ß ÇÕ´Ï´Ù. ±× ±ÔÄ¢¿¡ ¸Â´Â °ª µéÀº: java.lang.Boolean, java.lang.Byte, java.lang.Character, java.lang.Double, java.lang.Float, java.lang.Integer, java.lang.Long, java.lang.Short, ¶Ç´Â java.lang.String ÀÔ´Ï´Ù.

value

À¥¾îÇø®ÄÉÀ̼ÇÀÌ JNDI ÄÁÅØ½ºÆ®·ÎºÎÅÍ ¿äÃ»ÇØ¼­ ¹Ýȯ ¹ÞÀ» ȯ°æÇ׸ñÀÇ °ª. ÀÌ °ªÀº ¹Ýµå½Ã À§ÀÇ type¿¡ Á¤ÀÇµÈ Java typeÀ¸·Î º¯È¯ °¡´ÉÇØ¾ß ÇÕ´Ï´Ù.

Lifecycle Listeners

¸¸¾à ÀÌ Context°¡ ¾ðÁ¦ ½ÃÀ۵ǰí Á¾·áµÇ´ÂÁö ¾î¶² Java °´Ã¼°¡ ¾Ë Çʿ䰡 ÀÖ´Ù¸é, ÀÌ ¿¤¸®¸ÕÆ® ¾È¿¡ Listener ¿¤¸®¸ÕÆ®¸¦ Æ÷ÇÔ½ÃÄѼ­ ±× Java Ŭ·¡½º¸íÀ» ¼±¾ðÇÏ¸é µË´Ï´Ù. ÀÌ ¶§ ÁöÁ¤ÇÏ´Â Java Ŭ·¡½º´Â org.apache.catalina.LifecycleListener ÀÎÅÍÆäÀ̽º¸¦ ¹Ýµå½Ã ±¸ÇöÇØ¾ß Çϸç, ÇØ´ç »ý¸íÁÖ±â À̺¥Æ® ¹ß»ý¿¡ ´ëÇØ ÅëÁö¸¦ ¹Þ°Ô µÉ °ÍÀÔ´Ï´Ù. ¸®½º³ÊÀÇ ¼³Á¤Àº ´ÙÀ½°ú °°½À´Ï´Ù:

<DefaultContext  ...>
  ...
  <Listener className="com.mycompany.mypackage.MyListener" ... >
  ...
</DefaultContext>

Listener´Â ÀÌ ¿¤¸®¸ÕÆ®¿¡ ¼³Á¤µÉ Ãß°¡ ÇÁ·ÎÆÛƼ¸¦ ¾ó¸¶µçÁö °¡Áú ¼ö ÀÖÀ½À» ±â¾ïÇϽʽÿÀ. ¼Ó¼º¸íÀº Ç¥ÁØ ÇÁ·ÎÆÛƼ ¸Þ¼Òµå(getter/setter) ¸í¸í±ÔÄ¢À» »ç¿ëÇÏ´Â ÇØ´ç JavaBean ¼Ó¼º¸í¿¡ ¸ÅĪµË´Ï´Ù.

ÀÚ¿øÁ¤ÀÇ(Resource Definitions)

À¥¾îÇø®ÄÉÀÌ¼Ç ¹èÄ¡ µð½ºÅ©¸³ÅÍÀÇ <resource-ref>¿Í <resource-env-ref> ¿¤¸®¸ÕÆ®ÀÇ JNDI Ž»ö(lookup)¿¡ ´ëÇØ ¹ÝȯµÉ ÀÚ¿øÀÇ Æ¯¼ºµµ ¼±¾ð °¡´ÉÇÕ´Ï´Ù. ±×¸®°í ¾î¶² ÀÚ¿ø¿¡ ´ëÇØ¼­ °´Ã¼ÆÑÅ丮¸¦ »ç¿ëÇϰí(TomcatÀÌ ¾ÆÁ÷ ¸ð¸£´Â °æ¿ì) ±× °´Ã¼ÆÑÅ丮¸¦ ¼³Á¤Çϴµ¥ »ç¿ëÇÒ ÇÁ·ÎÆÛƼ¸¦ ¼³Á¤ÇÏ·Á¸é, ¹Ýµå½Ã ±× ÀÚ¿ø°ú °°Àº À̸§À¸·Î ÀÚ¿ø ÆÄ¶ó¹ÌÅÍ(Resource Parameters)¸¦ Ãß°¡·Î Á¤ÀÇÇØ¾ß ÇÕ´Ï´Ù.

¿¹¸¦ µé¾î ´ÙÀ½°ú °°ÀÌ ÀÚ¿øÁ¤Àǰ¡ °¡´ÉÇÕ´Ï´Ù:

<DefaultContext ...>
  ...
  <Resource name="jdbc/EmployeeDB" auth="Container"
            type="javax.sql.DataSource"
     description="Employees Database for HR Applications"/>
  ...
</DefaultContext>

À̰ÍÀº À¥¾îÇø®ÄÉÀÌ¼Ç ¹èÄ¡ µð½ºÅ©¸³ÅÍ(/WEB-INF/web.xml)¿¡ ´ÙÀ½ÀÇ ¿¤¸®¸ÕÆ®¸¦ Æ÷ÇÔ½ÃŲ °Í°ú µ¿ÀÏÇÕ´Ï´Ù:

<resource-ref>
  <description>Employees Database for HR Applications</description>
  <res-ref-name>jdbc/EmployeeDB</res-ref-name>
  <res-ref-type>javax.sql.DataSource</res-ref-type>
  <res-auth>Container</res-auth>
</resource-ref>

±×·¯³ª ÀÌ °ªÀ» Ä¿½ºÅ͸¶ÀÌÁîÇϱâ À§ÇØ ¹èÄ¡ µð½ºÅ©¸³Å͸¦ º¯°æÇÒ ÇÊ¿ä´Â ¾ø½À´Ï´Ù.

<Resource> ¿¤¸®¸ÕÆ®¿¡¼­´Â ´ÙÀ½°ú °°Àº ¼Ó¼ºµéÀ» »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù:

¼Ó¼º¼³¸í
auth

ÇØ´ç ÀÚ¿ø°ü¸®ÀÚ¿¡ ÀÎÁõ(sign on)ÇÒ ¶§, À¥¾îÇø®ÄÉÀÌ¼Ç ÇÁ·Î±×·¥ÀÇ ÄÚµå»ó¿¡¼­ Á÷Á¢ ÇÒÁö, ¶Ç´Â ÄÁÅ×À̳ʰ¡ Á÷Á¢ ¾îÇø®ÄÉÀ̼ÇÀÇ ÇàÀ§(behalf)¿¡ µû¶ó ÇÒÁö¸¦ ÁöÁ¤ÇÕ´Ï´Ù. ÀÌ ¼Ó¼ºÀÇ °ªÀº ¹Ýµå½Ã Application ¶Ç´Â Container Áß Çϳª¿©¾ß ÇÕ´Ï´Ù. ÀÌ ¼Ó¼ºÀº, À¥¾îÇø®ÄÉÀ̼ÇÀÌ À¥¾îÇø®ÄÉÀÌ¼Ç ¹èÄ¡ µð½ºÅ©¸³ÅÍ¿¡¼­ <resource-ref> ¿¤¸®¸ÕÆ®¸¦ »ç¿ëÇÏ´Â °æ¿ì¿¡´Â ¹Ýµå½Ã ÇÊ¿äÇÕ´Ï´Ù. ±×·¯³ª <resource-env-ref>¸¦ ´ë½Å »ç¿ëÇÏ´Â °æ¿ì¿¡´Â ¼±ÅûçÇ×ÀÔ´Ï´Ù.

description

(¼±ÅûçÇ×)ÀÌ ÀÚ¿ø¿¡ ´ëÇÑ »ç¶÷ÀÌ Àб⠽¬¿î °£´ÜÇÑ ¼³¸í

name

»ý¼ºÇÒ ÀÚ¿øÀÇ À̸§. java:comp/env ÄÁÅØ½ºÆ®¿¡ ´ëÇÑ »ó´ëÀûÀÎ À̸§ÀÔ´Ï´Ù.

scope

ÀÌ ÀÚ¿ø°ü¸®ÀÚ¸¦ ÅëÇØ ¾ò¾îÁø ¿¬°á(connection)ÀÇ °øÀ¯¸¦ Çã°¡ÇÒ °ÍÀÎÁö ÁöÁ¤ÇÕ´Ï´Ù. ÀÌ ¼Ó¼ºÀÇ °ªÀº ¹Ýµå½Ã Shareable ¶Ç´Â Unshareable Áß Çϳª¿©¾ß ÇÕ´Ï´Ù. ÁöÁ¤ÇÏÁö ¾ÊÀ¸¸é ¿¬°áÀº °øÀ¯°¡´É(shareable)ÀÌ µË´Ï´Ù.

type

À¥¾îÇø®ÄÉÀ̼ÇÀÌ ÀÌ ÀÚ¿ø¿¡ ´ëÇØ Ž»ö(lookup)À» ½ÇÇàÇÒ ¶§ ±â´ëÇÏ´Â ¿ÏÀüÇÑ Java Ŭ·¡½º¸í.

ÀÚ¿ø ÆÄ¶ó¹ÌÅÍ(Resource Parameters)

ÀÌ ¿¤¸®¸ÕÆ®´Â À¥¾îÇø®ÄÉÀ̼ǿ¡¼­ ÇØ´ç ÀÚ¿øÀÇ À̸§¿¡ ´ëÇØ JNDI Ž»öÀ» ¼öÇàÇÒ ¶§, °´Ã¼¸¦ ¹ÝȯÇϴµ¥ »ç¿ëÇÒ ÀÚ¿ø°ü¸®ÀÚ(¶Ç´Â °´Ã¼ÆÑÅ丮)¸¦ ¼³Á¤ÇÏ´Â ¿ªÇÒÀ» ÇÕ´Ï´Ù. $CATALINA_HOME/conf/server.xmlÀÇ <Context>³ª <DefaultContext> ¿¤¸®¸ÕÆ® ³»ÀÇ <Resource> ¿¤¸®¸ÕÆ®·Î ÁöÁ¤µÈ ¸ðµç ÀÚ¿ø À̸§, ±×¸®°í/¶Ç´Â À¥¾îÇø®ÄÉÀÌ¼Ç ¹èÄ¡ µð½ºÅ©¸³ÅÍ¿¡¼­ <resource-ref> ³ª <resource-env-ref> ¿¤¸®¸ÕÆ®¿¡¼­ ¼±¾ðµÈ ¸ðµç ÀÚ¿ø À̸§¿¡ ´ëÇØ¼­´Â ¹Ýµå½Ã ÀÚ¿ø ÆÄ¶ó¹ÌÅÍ(resource parameters)¸¦ Á¤ÀÇÇØ¾ß ±× ÀÚ¿ø¿¡ ¼º°øÀûÀ¸·Î ¾×¼¼½ºÇÒ ¼ö ÀÖ½À´Ï´Ù.

ÀÚ¿ø ÆÄ¶ó¹ÌÅÍ´Â À̸§À¸·Î Á¤ÀǵǸç, Á¤È®ÇÏ°Ô ¾î¶² ÆÄ¶ó¹ÌÅÍ À̸§µéÀÇ ÁýÇÕÀ» Áö¿øÇϴ°¡´Â ´ç½ÅÀÌ »ç¿ëÇϰí ÀÖ´Â ÀÚ¿ø°ü¸®ÀÚ(¶Ç´Â °´Ã¼ÆÑÅ丮)¿¡ µû¶ó ´Þ¶óÁý´Ï´Ù. Áï ÇØ´ç ÆÑÅ丮 Ŭ·¡½ºÀÇ JavaBeans ÇÁ·ÎÆÛƼ Áß ¼³Á¤°¡´ÉÇÑ(settable) ÇÁ·ÎÆÛƼÀÇ À̸§°ú ÀÏÄ¡ÇØ¾ß ÇÕ´Ï´Ù. JNDI ±¸Çöü´Â ÁöÁ¤ÇÑ ÆÑÅ丮 Ŭ·¡½ºÀÇ ÀνºÅϽº¿¡ ´ëÇØ JavaBeansÀÇ ¸ðµç ÇØ´ç ¼Ó¼º ¼³Á¤¸Þ¼Òµå¸¦ È£ÃâÇÔÀ¸·Î½á ¸ðµç ¼³Á¤À» ¸¶Ä£ ´ÙÀ½¿¡¾ß, ÀÌ ÆÑÅ丮 ÀνºÅϽº¸¦ JNDI lookup() È£ÃâÀ» ÅëÇØ »ç¿ë°¡´ÉÇϵµ·Ï ÇÒ °ÍÀÔ´Ï´Ù.

¿¹·Î JDBC µ¥ÀÌÅÍ ¼Ò½º¿¡ ´ëÇÑ ÀÚ¿ø ÆÄ¶ó¹ÌÅÍ ¼³Á¤Àº ¾Æ·¡¿Í °°ÀÌ µË´Ï´Ù:

<DefaultContext ...>
  ...
  <ResourceParams name="jdbc/EmployeeDB">
    <parameter>
      <name>driverClassName</name>
      <value>org.hsql.jdbcDriver</value>
    </parameter>
    <parameter>
      <name>driverName</name>
      </value>jdbc:HypersonicSQL:database</value>
    </parameter>
    <parameter>
      <name>user</name>
      <value>dbusername</value>
    </parameter>
    <parameter>
      <name>password</name>
      <value>dbpassword</value>
    </parameter>
  </ResourceParams>
  ...
</DefaultContext>

¸¸¾à ƯÁ¤ ÀÚ¿ø ŸÀÔ¿¡ ´ëÇØ ÆÑÅ丮 Ŭ·¡½ºÀÇ Java Ŭ·¡½º¸íÀ» ÁöÁ¤ÇÒ Çʿ䰡 ÀÖ´Ù¸é, <ResourceParams> ¿¤¸®¸ÕÆ® ³»ÀÇ <parameter> Ç׸ñ¿¡ factory¶ó´Â À̸§À» »ç¿ëÇÏ¸é µË´Ï´Ù.

<ResourceParams> ¿¤¸®¸ÕÆ®°¡ °¡Áú ¼ö ÀÖ´Â ¼Ó¼ºÀº ´ÙÀ½°ú °°½À´Ï´Ù:

¼Ó¼º¼³¸í
name

¼³Á¤ÇÒ ÀÚ¿øÀÇ À̸§À̸ç, java:comp/env ÄÁÅØ½ºÆ®¿¡ ´ëÇÑ »ó´ëÀûÀÎ À̸§ÀÌ µË´Ï´Ù. ÀÌ À̸§Àº $CATALINA_HOME/conf/server.xml ³»¿¡ <Resource> ¿¤¸®¸ÕÆ®·Î Á¤ÀÇµÈ ÀÚ¿ø, ±×¸®°í/¶Ç´Â À¥¾îÇø®ÄÉÀÌ¼Ç ¹èÄ¡ µð½ºÅ©¸³ÅÍ ³»¿¡ <resource-ref> ¶Ç´Â <resource-env-ref>·Î ÂüÁ¶µÇ´Â ÀÚ¿øÀÇ À̸§°ú ¹Ýµå½Ã ÀÏÄ¡ÇØ¾ß ÇÕ´Ï´Ù.

ÀÚ¿ø¸µÅ©(Resource Links)

ÀÌ ¿¤¸®¸ÕÆ®´Â ¾î¶² Àü¿ª JNDI ÀÚ¿øÀ¸·ÎÀÇ ¸µÅ©¸¦ »ý¼ºÇϴµ¥ »ç¿ëÇÕ´Ï´Ù. ±× ¿¬°á¸í¿¡ ´ëÇÏ¿© JNDI Ž»öÀ» ½ÇÇàÇÏ¸é ¸µÅ©µÈ Àü¿ªÀÚ¿øÀÌ ¹ÝȯµË´Ï´Ù.

¿¹¸¦ µé¾î ´ÙÀ½°ú °°ÀÌ ÀÚ¿ø¸µÅ©¸¦ »ý¼ºÇÒ ¼ö ÀÖ½À´Ï´Ù:

<DefaultContext ...>
  ...
  <ResourceLink name="linkToGlobalResource"
            global="simpleValue"
            type="java.lang.Integer"
  ...
</DefaultContext>

<ResourceLink> ¿¤¸®¸ÕÆ®°¡ °¡Áú ¼ö ÀÖ´Â ¼Ó¼ºÀº ´ÙÀ½°ú °°½À´Ï´Ù:

¼Ó¼º¼³¸í
global

Àü¿ª JNDI ÄÁÅØ½ºÆ®³»ÀÇ ¸µÅ©µÈ Àü¿ªÀÚ¿øÀÇ À̸§.

name

»ý¼ºÇÒ ÀÚ¿ø¸µÅ©ÀÇ À̸§À̸ç, java:comp/env¿¡ ´ëÇÑ »ó´ëÀûÀÎ À̸§ÀÔ´Ï´Ù.

type

ÀÌ ÀÚ¿ø¸µÅ©¿¡ ´ëÇØ Ž»öÀ» ½ÇÇàÇÒ ¶§ À¥¾îÇø®ÄÉÀ̼ÇÀÌ ±â´ëÇÏ´Â ¿ÏÀüÇÑ Java Ŭ·¡½º¸í.


Copyright © 1999-2002, Apache Software Foundation
¹ø¿ª: ÀüÁöÈÆ, contact: jihoon_jeon@hotmail.com http://okjsp.pe.kr
http://www.apache-korea.org , jakarta-seoul project