JServ 설치
이 설치 방법은 아파치 1.3.1과 JServ 0.9.11로 테스트해 보았습니다.  

소개
JServ는 아파치 웹서버에서 자바 써블릿을 사용할 수 있게 해 준다. 써블릿은 `서버에서 실행되는 애플릿'으로 생각하면 된다. 써블릿은 웹서버에서 바로 실행되므로 새로운 프로세스를 만들어 실행하는 CGI에 비해 효율면에서 월등히 우수하다.

필요한 것
JDK(1.1 이상) (자바 홈페이지)
아파치 웹서버(1.3.0 이상) 소스 (다운로드)
JServ 소스 (JServ 홈페이지)
JServ 설치 및 컴파일
설치에 앞서 JDK가 먼저 설치되어 있어야 한다. 리눅스를 사용한다면 `리눅스에서 JDK 설치하기'에 설치 방법이 나와 있다.

먼저 JServ를 설치할 디렉토리를 정하고 그 곳에서 소스의 압축을 풀고, 그 디렉토리로 이동한다. 만일 /usr/local/jserv에 설치하고 싶다면 다음과 같이 한다. (JServ의 압축 파일이 /my/dir에 있다고 가정한다.)

    # cd /usr/local
    # tar xvzf /my/dir/jserv0.9.11.tar.gz
    # mv jserv0.9.11 jserv
    # cd jserv

그리고 디렉토리 안에 있는 Makefile의 앞부분을 수정한다. 대개는 첫 줄만 고쳐주는 것으로 충분하다. 첫 줄의 PREFIX 값을 자신이 JServ를 설치한 디렉토리로 바꾸어 준다. 위와 같이 압축을 풀었다면 `PREFIX=/usr/local/jserv'로 해 주어야 한다.

이제 컴파일을 할 차례이다. 만일 자바를 위한 환경변수 CLASSPATH가 설정되어 있지 않다면 이 값을 먼저 설정해 주어야 한다. JDK가 설치되어 있는 곳이 /usr/local/jdk라면 다음과 같이 하면 된다.

    # export CLASSPATH=/usr/local/jdk/lib/classes.zip

이제 make 명령으로 컴파일을 하면 된다. (주의: make의 종류에 따라서는 JServ를 컴파일하지 못할 수도 있다. GNU make를 사용하면 아무 문제가 없으므로, make에서 문제 발생 시에는 GNU make를 쓰도록 한다.) 만일 API에 대한 html 문서가 필요하다면 make doc 으로 생성할 수 있다.

mod_jserv의 설치
mod_jserv는 아파치에서 써블릿을 실행시킬 때 사용되는 모듈이다. 이 모듈의 소스는 JServ 디렉토리에 있는 mod_jserv.c이다. 이 소스를 아파치 컴파일 환경 설정 시에 불러들여 아파치와 함께 컴파일되도록 만들어 주어야 한다. 이는 --add-module 옵션을 쓰면 가능하다.

    # ./configure [다른 옵션들] --add-module=/usr/local/jserv/mod_jserv.c

이제 아파치를 컴파일하고 설치하면 이 모듈도 함께 설치된다. configure 명령을 어디서 어떻게 사용하는지는 `아파치 웹서버 설치'에 나와 있다.

환경 설정
써블릿을 실행하려면 아파치 서버 환경 설정 파일에 몇 가지를 덧붙여 주어야 한다. 다음은 그 한 예를 보인 것이다. 위와 같이 설치했다면 아래 파일을 그대로 httpd.conf에 덧붙이는 것만으로 써블릿의 사용이 가능하다.

# mod_jserv: Java servlet module configuration
<IfModule mod_jserv.c>
  ServletProperties     conf/jserv.properties
  ServletPort           8007
  ServletBinary         /usr/local/jdk/bin/java
  ServletClassPath      /usr/local/jdk/lib/classes.zip
  ServletClassPath      /usr/local/jserv/servclasses.zip
  ServletClassPath      /usr/local/jserv/classes
  ServletAlias          /servlets /usr/local/jserv/servlets
  AddHandler            jhtml-parser .jhtml
  Action                jhtml-parser /servlets/org.apache.jserv.JServSSI
</IfModule>

이제 하나씩 자세히 살펴보기로 하자.

ServletBinary
java 실행파일이 있는 곳을 가리킨다. JDK를 인스톨한 곳 밑의 bin 디렉토리를 써주면 된다.

ServletBinaryArgument
java 명령 실행시에 추가로 주어야 할 인자를 명시해 준다. java 명령 뒤에 주고 싶은 옵션들을 써 주면 된다.

ServletClassPath
자바 클래스들이 있는 곳을 가리킨다. 써블릿에서 사용할 클래스가 들어 있는 디렉토리나 zip, jar 파일을 써 주면 된다. 한 줄에 하나씩만 써야 하므로 아파치에서 써블릿을 사용하기 위해서는 최소한 세 줄이 있어야 한다. 즉, JDK, JSDK, JServ의 클래스를 각각 명시해 주어야 한다. 앞의 예에 있는 세 줄이 바로 그것이다. 이 외에도 필요한 클래스(예: JDBC 등)가 있으면 모두 써 준다. 물론 JDK 1.2를 사용한다면 JSDK가 이미 포함되어 있으므로 servclasses.zip은 쓸 필요가 없다.

ServletEnvironment
아파치에서 java로 환경변수를 넘겨주고 싶을 때 사용한다. 변수 이름만 써 주면 아파치의 값이 그대로 java로 넘어가며, 새로운 값을 정해주고 싶으면 변수 이름과 값을 공백으로 구분해서 함께 적어 주면 된다.

ServletErrorLog
써블릿에서 발생하는 에러를 기록할 파일 이름을 써 준다. 이 때 파일 이름은 ServerRoot에 대한 상대 경로이다. 만일 이 값을 주지 않으면 아파치의 에러와 같은 곳에 기록된다.

ServletPort
써블릿이 사용할 TCP 포트 번호이다.

ServletAuthExport
이 값을 On으로 하면 다른 모듈이 써블릿에 액세스를 할 수 있다. 그러나 이는 보안상 허점이 될 수도 있다. 기본값은 Off이다.

ServletProperties
JServ의 여러 속성값들을 담고 있는 파일을 가리킨다.

ServletAlias
써블릿들이 들어갈 디렉토리를 써 준다. 앞에 URI를, 뒤에 실제 경로를 써 주면 된다.

<SERVLET> 태그 사용
HTML 문서 중간에 써블릿을 사용하고 싶다면 <SERVLET> 태그를 사용한다. 이를 사용하기 위해서 먼저 해 주어야 하는 것이 있는데, 이것이 다음 두 설정이다.

  AddHandler            jhtml-parser .jhtml
  Action                jhtml-parser /servlets/org.apache.jserv.JServSSI

이 설정에 의해 확장자가 jhtml인 파일은 JServSSI라는 써블릿에 의해 처리된다. JServSSI는 <SERVLET> 태그를 찾아 거기에 명시된 써블릿을 실행시킨다.

* itislord님에 의해서 게시물 복사되었습니다 (2005-04-24 14:11)

+ Recent posts