2010년 10월 19일 화요일

Tomcat 실행 에러 'starting tomcat Server at localhost' has encountered a problem

'Starting Tomcat v.6.0 Server at localhost' has encountered a problem.

 

Serveral ports (80, 8009) required by Tomcat v6.0

Server at locahost are already in use. Thee server may

already be running in another process, or a system

process may be using the port. To start this server you

will need to stop the other process or change the port

number(s).

 

위와 같은 에러가 난다면 작업 관리자 창을 열어

 

javaw.exe 를 종료 시키면 에러 없이 잘 실행된다.

 

javaw.exe 는 톰캣 샐행프로세스이다.

2010년 10월 12일 화요일

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 실행 해보자. 잘 될것이다.

 

 

 

 

2010년 10월 7일 목요일

tomcat server.xml 설정

tomcat6.0 -> bin -> server.xml 의 파일에서 context  부분의 docbase를 설정해 주어야한다.

 

docbase는 url에서 localhost:8080 다음의 root 경로를 설정하는 부분이다.

 

<context docbase="C:\Program Files\root로 설정할 경로를 적어준다" path="/" />

 

만약 docbase를 C:\Program Files\Apache Software Foundation\Tomcat 6.0\webapps 

 

이렇게 설정했다면 webapps폴더 안이 root가 된다.

 

url에서 경로를 http://localhost:8080/ 다음에 webapps폴더 안에 있는 파일명을 적어주면 된다.

 

즉,  아래와 같은 의미이다.

 

 http://localhost:8080/ =  C:\Program Files\Apache Software Foundation\Tomcat 6.0\webapps

 

만약,  Host 태그에서 appBase="webapps" 설정되어 있다면 따로 설정하지 않아도 된다.

 

 

      <Host name="localhost"  appBase="webapps"
            unpackWARs="true" autoDeploy="true"
            xmlValidation="false" xmlNamespaceAware="false">

 


   이 경우 webapps가 root가 된다.  localhost:8000/ 여기가 webapps 폴더 안이 된다.