톰켓6 처음 설치시 할일
2010. 4. 2. 21:49ㆍ99. 정리전 - IT/14. Tomcat6 자료
400error 해결
tomcat 6.x 구동 후 http://localhost:8080 에 들어가려고 하면 HTTP 400 error 를 뱉으며 들어가지지 않는다.
tomcat 로그를 보면 다음과 같은 에러가 출력되어 있다.
심각: Error deploying web application directory ROOT
java.lang.SecurityException: Servlet of class org.apache.catalina.servlets.InvokerServlet is privileged and cannot be loaded by this web application
톰캣 6.x 버전부터는 org.apache.catalina.servlets.InvokerServlet 클래스가 독점적 클래스로 바꿔어서 그렇단다.
해결법
Tomcat 설치 디렉터리의 conf/context.xml 파일을 열고,<Context> 태그를 다음과 같이 수정한다.
<Context reloadable="true" privileged="true">
그러면 Tomcat 시작 시 에러가 발생하지 않으며, 서블릿도 정상적으로 실행된다.
서블릿 설정
conf/web.xml파일을 열고 invoker와 서블릿 관련 주석을 풀어준다.
개삽질 호스트 해결
아파치의 버추얼호스트 처럼 Tomcat도 따라쟁이
../conf/server.xml
<Host name="www.xxx.com" appBase="D:/YYY/xxx.com"
unpackWARs="true" autoDeploy="true"
xmlValidation="false" xmlNamespaceAware="false">
</Host>
<Host name="xxxx.com" appBase="D:/YYY/xxx.com"
unpackWARs="true" autoDeploy="true"
xmlValidation="false" xmlNamespaceAware="false">
</Host>
<Host name="www.xxx.com" appBase="D:/YYY/xxx.com"
unpackWARs="true" autoDeploy="true"
xmlValidation="false" xmlNamespaceAware="false">
</Host>
<Host name="xxxx.com" appBase="D:/YYY/xxx.com"
unpackWARs="true" autoDeploy="true"
xmlValidation="false" xmlNamespaceAware="false">
</Host>
실제디렉토리
(Tomcat6에서는 아래와 같이 ROOT라는 글자가 필요하다. ROOT를 쓰고싶지 않아서 찾던중
상기의 예제에서 host태그 안에 context태그를 지정하면 된다는 다른 글을 보고 개삽질 실컷했다.
결과 400에러만 연발)
D:
-YYY
-xxx.com
-docs
-src
-ROOT
-css
-img
-jsp
-WEB-INF
-web.xml
(Tomcat6에서는 아래와 같이 ROOT라는 글자가 필요하다. ROOT를 쓰고싶지 않아서 찾던중
상기의 예제에서 host태그 안에 context태그를 지정하면 된다는 다른 글을 보고 개삽질 실컷했다.
결과 400에러만 연발)
D:
-YYY
-xxx.com
-docs
-src
-ROOT
-css
-img
-jsp
-WEB-INF
-web.xml
인용 및 참고사이트
http://pitp.tistory.com/3
http://dbdb.tistory.com/rss