HTTP Status 404 - /
type Status report
message /
description The requested resource (/) is not available.
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.
tomcat6.0 ȯ°æ ¼³Á¤ & java ȯ°æ¼³Á¤ & ÀÌŬ¸³½º ¿¬µ¿
1. Àڹ٠ȯ°æº¯¼ö ¼³Á¤
ÄÄÇ»ÅÍ -> ¼Ó¼º -> ½Ã½ºÅÛ º¯¼ö
# JAVA_HOME : C:\Program Files\Java\jdk1.6.0_07
(ÀÚ½ÅÀÌ ¼³Ä¡ÇÑ jdk °æ·Î ÁöÁ¤)
# Path : %JAVA_HOME%\bin;
# CLASSPATH
.;%JAVA_HOME%\lib\tools.jar;%JAVA_HOME%\lib\servlet-api;
%JAVA_HOME%\lib\jsp-api
* JDK º¸´Ù Oracle À» ³ªÁß¿¡ ¼³Ä¡ÇÒ °æ¿ì Oracle ÀÇ ¼³Á¤ Áß Java 1.3.1 ÀÌ Path ÀÇ ¾ÕÀ» Â÷ÁöÇÏ´Â °æ¿ì°¡ ÀÖ´Ù. ÀÌ·² °æ¿ì ´Ù½Ã ¾ÕÀ¸·Î ³õ¾Æ¾ß Java -version ½Ã 1.6.0 À¸·Î Á¦´ë·Î ¼³Á¤µÈ´Ù.
2. ÅèĹ ȯ°æº¯¼ö ¼³Á¤
# CATALINA_HOME : C:\tomcat
# CLASSPATH : %CATALINA_HOME%\bin\servlet-api.jar;
[[ Tomcat ¼³Ä¡ ¹× ȯ°æ¼³Á¤ ]]
1. http://tomcat.apache.org/ -> tomcat6.0 ¼±ÅÃ
2. tomcat6.0 ´Ù¿î·Îµå
3. ½ÇÇàÇϱâ
4. http://www.eclipsetotale.com/tomcatPlugin.html -> tomcat plug-in ´Ù¿î¹Þ±â
5. ´Ù¿î¹ÞÀº tomcatPluginV321.zip ¾ÐÃâÀ» Ǭ ÈÄ ¾ÐÃà Ǭ Æú´õ ¾ÈÀÇ
com.sysdeo.eclipse.tomcat_3.2.1 ÀÌ Æú´õ¸¦ ÀÌŬ¸³½º pluginsÆú´õ ¾Õ¿¡ º¹»ç Çؼ
ºÙ¿©³Ö´Â´Ù.
6. ÀÌŬ¸³½º click -> windows -> Preferences ¿¡¼ ¼³Á¤Çϱâ
7. Tomcat ÀÇ ¹öÀüÀÌ ¿Ã¶ó°¡¸é¼ º¸¾È»óÀÇ ÀÌÀ¯·Î ¼ºí¸´À» ½ÇÇàÇÏÁö ¸øÇϵµ·Ï ¼³Á¤µÇ¾ú´Ù.
¼ºí¸´À» ½ÇÇàÇϱâ À§Çؼ´Â ´ÙÀ½°ú °°Àº ¼³Á¤À» ÇØÁÖ¾î¾ßÇÑ´Ù.
ÄÄÇ»ÅÍ -> ¿À¸¥ÂÊ ¸¶¿ì½º -> ¼Ó¼º -> °í±Þ ½Ã½ºÅÛ ¼³Á¤ -> ½Ã½ºÅÛ ¼³Á¤ -> °í±Þ ->
ȯ°æº¯¼ö -> path ¼±Åà -> ÆíÁý
%CATALINA_HOME%\conf\web.xml
À§ÀÇ ³»¿ëÀ» Ãß°¡ÇÑ´Ù.
8. Tomcat6.0 -> conf -> web.xml ÆÄÀÏ¿¡¼ invoker¸¦ Æ÷ÇÔÇÑ Å±×ÀÇ ÁÖ¼®À» ÇØÁ¦ÇÑ´Ù.
<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>
<servlet-mapping>
<servlet-name>invoker</servlet-name>
<url-pattern>/servlet/*</url-pattern>
</servlet-mapping>
9. ÅèĹÀ» ½ÇÇàÇصµ ¾Æ·¡¿Í °°Àº ¿¡·¯°¡ ³´Ù. ÅèĹ 6.x ¹öÀüºÎÅÍ´Â ¼ºí¸´ ¸®·Îµù¿¡ °ü·ÃµÈ
¼³Á¤À» ÇØÁÖ¾î¾ß ÇÑ´Ù.
java.lang.SecurityException: Servlet of class org.apache.catalina.servlets.
InvokerServlet is privileged and cannot be loaded by this web application
Tomcat6.0 -> conf -> context.xml ÆÄÀÏÀ» ¾Æ·¡¿Í °°ÀÌ ¼öÁ¤ÇؾßÇÑ´Ù.
<Context reloadable="true" privileged="true">
ű׾ȿ¡ ÁÖȲ»öÀ¸·Î Ç¥½ÃµÇ¾î ÀÖ´Â ³»¿ë¸¸ ÀÔ·ÂÇØ ÁÖ¸é µÈ´Ù.
10. Tomcat ½ÇÇà Çغ¸ÀÚ. Àß µÉ°ÍÀÌ´Ù.