ÃֽŠ°Ô½Ã±Û(OS/WAS)
2020.10.02 / 20:50

org.apache.catalina.startup.ContextConfig applicationWebConfig invoker

Ãß¼®µ¹ÀÌ
Ãßõ ¼ö 165

ÅèĹ 6.0 ¼­ºí¸´ ·Îµù ¼³Á¤(context.xml).txt


TomcatÀÇ ¹öÀüÀÌ ¿Ã¶ó°¡¸é¼­ º¸¾È»óÀÇ ÀÌÀ¯·Î ±âº»ÀûÀ¸·Î´Â ¼­ºí¸´À» ½ÇÇàÇÏ 
Áö ¸øÇϵµ·Ï ¼³Á¤ÀÌ µÇ¾îÀÖ´Ù. 


±×·¡¼­ ´ÙÀ½°ú °°ÀÌ ¼³Á¤ÇØ ÁÖ¸é Tomcat¿¡¼­ ¼­ºí¸´À» ½ÇÇàÇÒ ¼ö ÀÖ´Ù. 
   

ÅèĹÀº ȯ°æ¼³Á¤°ú °ü·ÃµÈ ³»¿ëÀ» web.xml ÆÄÀÏ¿¡ ´ã°í ÀÖ´Ù. ÅèĹÀ» ¼³Ä¡ÇÑ  
µð·ºÅ͸®ÀÇ conf µð·ºÅ͸®¿¡ ÀÖ´Â web.xml ÆÄÀÏÀ» ¼öÁ¤ÇÔÀ¸·Î½á ÅèĹÀ» ½ÇÇàÇÏ 
´Âµ¥ ÇÊ¿äÇÑ È¯°æ¼³Á¤ Á¤º¸¸¦ º¯°æÇÒ ¼ö ÀÖ´Ù.  


¡à ÅèĹÀÇ È¯°æ¼³Á¤ ÆÄÀÏ  
¡Þ %CATALINA_HOME%\conf\web.xml  

web.xml ÆÄÀÏ¿¡¼­ ¼­ºí¸´À» ½ÇÇàÇÒ ¼ö ÀÖµµ·Ï ¼­ºí¸´ÀÇ Á¢±Ù ¹æ¹ýÀ» ÁöÁ¤ÇØ ÁÜ 
À¸·Î½á ¼­ºí¸´ ¼­ºñ½º¸¦ Á¦°øÇÒ ¼ö ÀÖ´Ù.  

¼­ºí¸´À» ½ÇÇàÇϱâ À§ÇÑ È¯°æ¼³Á¤ ÆÄÀÏÀ» ¼öÁ¤ÇØ º¸ÀÚ. ´ÙÀ½ÀÇ À§Ä¡¿¡ ¼³Á¤µÇ¾î ÀÖ´Â ÁÖ¼®À» ÇØÁ¦ÇÏ¸é µÈ´Ù.  

¡à web.xml ÆÄÀÏÀÇ º¯°æ  
¡Þ 99¹ø° ~ 109¹ø° ÁÙ ÁÖ¼® ÇØÁ¦  
    <servlet> 
        <servlet-name>invoker</servlet-name> 
        <servlet-class> 
          org.apache.catalina.servlets.InvokerServlet 
        </servlet-class> 
        <init-param> 
            <param-name>debug</param-name> 
            <param-value>0</param-value> 
        </init-param> 
        <load-on-startup>2</load-on-startup> 
    </servlet> 

¡Þ 348¹ø° ~ 351¹ø° ÁÙ ÁÖ¼® ÇØÁ¦  

    <servlet-mapping> 
        <servlet-name>invoker</servlet-name> 
        <url-pattern>/servlet/*</url-pattern> 
    </servlet-mapping> 

¡à XML ¹®¼­ÀÇ ÁÖ¼®¹® ±âÈ£  
¡Þ ÁÖ¼®¹®ÀÇ ½ÃÀÛ : <!--  
¡Þ ÁÖ¼®¹®ÀÇ ³¡ : -->  

À§ÀÇ À§Ä¡¿¡ ¼³Á¤µÇ¾î ÀÖ´Â ÁÖ¼® ±âÈ£¸¦ »èÁ¦ÇÏ¸é ¼­ºí¸´À» ½ÇÇàÇÒ ¼ö ÀÖ´Ù. 

±×·±µ¥ Tomcat 6.0¿¡¼­´Â À§¿Í °°ÀÌ ÁÖ¼®À» Ç®°í ½ÇÇàÇصµ Tomcat ½ÃÀ۽à ´ÙÀ½°ú °°Àº ExceptionÀÌ ¹ß»ýÇÑ´Ù. 

java.lang.SecurityException: Servlet of class org.apache.catalina.servlets.InvokerServlet is privileged and cannot be 
 loaded by this web application 

 at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1134) 
 at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:981) 
 at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:4045) 
 at org.apache.catalina.core.StandardContext.start(StandardContext.java:4351) 
 at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:791) 
 at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:771) 
 at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:525) 
 at org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:920) 
 at org.apache.catalina.startup.HostConfig.deployDirectories(HostConfig.java:883) 
 at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:492) 
 at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1138) 
 at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:311) 
 at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:117) 
 at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1053) 
 at org.apache.catalina.core.StandardHost.start(StandardHost.java:719) 
 at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045) 
 at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443) 
 at org.apache.catalina.core.StandardService.start(StandardService.java:516) 
 at org.apache.catalina.core.StandardServer.start(StandardServer.java:710) 
 at org.apache.catalina.startup.Catalina.start(Catalina.java:566) 
 at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
 at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) 
 at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) 
 at java.lang.reflect.Method.invoke(Unknown Source) 
 at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:288) 
 at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:413) 


ÅèĹ 6.x ¹öÀüºÎÅÍ´Â ´ÙÀ½°ú °°ÀÌ ¼­ºí¸´ ¸®·Îµù¿¡ °ü·ÃµÈ Ãß°¡ÀûÀÎ ¼³Á¤À» ÇØ ÁÖ¾î¾ß ÇÑ´Ù. 

Tomcat ¼³Ä¡ µð·ºÅ͸®ÀÇ conf/context.xml ÆÄÀÏÀ» ¿­°í, 
<Context> ű׸¦ ´ÙÀ½°ú °°ÀÌ ¼öÁ¤ÇÑ´Ù. 

<Context reloadable="true" privileged="true"> 

±×·¯¸é Tomcat ½ÃÀÛ ½Ã ¿¡·¯°¡ ¹ß»ýÇÏÁö ¾ÊÀ¸¸ç, ¼­ºí¸´µµ Á¤»óÀûÀ¸·Î ½ÇÇàµÈ´Ù. 


----------------------------------------------------------------- 
4. Turn on Servlet Reloading 
The next step is to tell Tomcat to check the modification dates of the 
 class files of requested servlets, and reload ones that have changed  
since they were loaded into the server's memory. This slightly degrades  
performance in deployment situations, so is turned off by default.  
However, if you fail to turn it on for your development server, you'll  
have to restart the server every time you recompile a servlet that has  
already been loaded into the server's memory. Since this tutorial  
discusses the use of Tomcat for development, this change is strongly  
recommended. 


To turn on servlet reloading, edit Edit install_dir/conf/context.xml and change 

  <Context> 
    to 

  <Context reloadable="true" privileged="true"> 

    Note that the privileged entry is really to support the invoker  
servlet (see the following section), so you can omit that entry if you  
do not use the invoker.