본문 바로가기

Programming/문제점 해결

톰캣 구동시 에러

톰캣 구동시 에러입니다.
java.lang.reflect.InvocationTargetException
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:585)
	at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:288)
	at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:413)
Caused by: 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:4044)
	at org.apache.catalina.core.StandardContext.start(StandardContext.java:4350)
	at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1014)
	at org.apache.catalina.core.StandardHost.start(StandardHost.java:719)
	at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1014)
	at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443)
	at org.apache.catalina.core.StandardService.start(StandardService.java:451)
	at org.apache.catalina.core.StandardServer.start(StandardServer.java:710)
	at org.apache.catalina.startup.Catalina.start(Catalina.java:552)
	... 6 more

Tomcat\conf\web.xml 내용중
    <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>

이부분 주석을 풀어주고

프로젝트 폴더의 WEB-INF\web.xml에 
<?xml version="1.0" encoding="ISO-8859-1"?>

<!--
    Copyright 2003 Sun Microsystems, Inc. All rights reserved.
    SUN PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
-->

<!DOCTYPE web-app
    PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
    "http://java.sun.com/dtd/web-app_2_3.dtd">

<web-app>
  <!-- The servlet mappings for the built in servlets defined above.        -->
  <!-- The mapping for the default servlet -->

  <servlet-mapping>
    <servlet-name>default</servlet-name>
    <url-pattern>/</url-pattern>
  </servlet-mapping>

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

  <!-- The mapping for the invoker servlet -->
  <servlet-mapping>
    <servlet-name>invoker</servlet-name>
    <url-pattern>/servlet/*</url-pattern>
  </servlet-mapping>


  <!-- The mapping for the JSP servlet -->
  <servlet-mapping>
    <servlet-name>jsp</servlet-name>
    <url-pattern>*.jsp</url-pattern>
  </servlet-mapping>


  <!-- ================== Default Session Configuration =================== -->


  <!-- You can set the default session timeout (in minutes) for all newly   -->
  <!-- created sessions by modifying the value below.                       -->


  <session-config>
    <session-timeout>30</session-timeout>
  </session-config>

</web-app>

이렇게 작성되어 있습니다..
어디를 어떻게 수정해야 정상적으로 작동할까요,, ㅡㅡㅋ
제목 : Re: 이렇게 해보세요
글쓴이: 이곤섭(guest) 2007/05/06 00:06:59 조회수:323 줄수:16
톰캣 설치 폴더 기준으로
conf/context.xml
위 파일을 여시고

<Context>
이렇게 되있는 부분을 
<Context reloadable="true" privileged="true">
이렇게 바꾸시고 서비스를 시작해보세요

로그에서 에러가 않나실 꺼에요

위 같는 에러가 나는 이유는 
톰캣 6.x 버전부터는   org.apache.catalina.servlets.InvokerServlet
클라스가 독점적클라스로 바꿔어서 그렇다고 하네요.