2000/2/6
バージョン Apache 1.3.11
JServ 1.1
GNUJSP 1.0.0
JDK 1.2.2 RC4
JSDK 2.0
OS RedHat 6.1J (Linux 2.2.12)
ホームページ http://java.apache.org/jserv/ (JServ)
http://www.klomp.org/gnujsp/
(GNUJSP)
http://www.blackdown.org/ (Linux JDK)
http://java.sun.com/products/servlet/ (JSDK)
ダウンロード http://java.apache.org/jserv/dist/ (JServ)
http://www.klomp.org/gnujsp/ (GNUJSP)
ftp://ftp.lab.kdd.co.jp/Linux/java-linux/
(Linux JDK)
http://java.sun.com/products/servlet/download.html
(JSDK)

2000/2/6

Java Servletは、CGIの代用になるテクノロジーで、サーバに常駐するためプロセス起動のオーバーヘッドがなく高速で、セッション管理など高度な機能が使用できる、Webアプリケーションプラットフォームです。

JSP (JavaServer Pages)は、Microsoft ASP (Active Server Pages)のJava版とも言えるものです。Javaコードが埋め込まれたHTMLファイルを、Servletプログラムに変換、コンパイルして実行するものです。Java Beansとの組み合わせで、ビジネスロジックとプレゼンテーションを切り分けた、カスタマイズ性の高いWebアプリケーションが開発できます。

Servlet APIの実装は元々JSDKと呼ばれ、その後継がJSWDKで、さらにそれがApacheプロジェクトに引き継がれ、現在はTomcatと呼ばれています。

現在のTomcat 3.0は、最新のAPIを搭載しているものの、Webサーバとしてまだ実用的に不十分な部分があります。そこで現時点で実用的なApache+JServ+GNUJSPをインストールします。

JServはServlet API 2.0のみに対応しているようなので、Tomcatではなく、古いJSDK 2.0を使用する必要があります。

JDKのインストール

現在JDKはglibc2版のみが配布されています。Slackware 3.6では結局うまく動きませんでした。ここではRedHat 6.1Jを使用しています。

$ su
# bzip2 -cd jdk-1.2.2-RC4-linux-i386-glibc-2.1.2.tar.bz2 | tar xvf -
# mv jdk1.2.2 /usr/local/jdk
# exit

~/.bash_profileなどを編集します。

export PATH=$PATH:/usr/local/jdk/bin
export JAVA_HOME=/usr/local/jdk

Apacheのインストール

今回はJServをDSO(Dynamic Shared Object) でインストールします。これはApacheの再コンパイルなしでモジュールの追加を可能にするものです。

まずはApacheをDSOサポート付きでインストールします。

$ tar xvfz apache_1.3.11.tar.gz
$ cd apache_1.3.11
$ ./configure --enable-rule=SHARED_CORE --enable-module=so
$ make
$ su
# make install
# exit

JSDK 2.0のインストール

JSDKをインストールします。展開するだけです。

$ su
# tar xvfz jsdk20-solaris2-sparc.tar.Z
# mv JSDK2.0 /usr/local/JSDK
# exit

JServのインストール

$ tar xvfz ApacheJServ-1.1.tar.gz
$ cd ApacheJServ-1.1
$ ./configure --with-apxs=/usr/local/apache/bin/apxs --with-jdk-home=/usr/local/jdk --with-JSDK=/usr/local/JSDK/lib/jsdk.jar
$ make
$ su
# make install

/usr/local/apache/conf/httpd.confに以下の行を追加する。

Include /usr/local/apache/conf/jserv/jserv.conf

起動してテスト

# /usr/local/apache/bin/apachectl start
# exit

以下のURLを開いてみます。

http://HOSTNAME:PORT/servlets/Hello

GNUJSPのインストール

$ su
# tar gnujsp-1.0.0.tar.gz
# mv gnujsp-1.0.0 /usr/local/gnujsp

apacheのインストールパスに、beans(Bean格納用)とjsp(JSPテンポラリ出力用)の2つのフォルダを作ります。jspのほうは所有者をWebゲストに設定します。

# mkdir /usr/local/apache/beans
# mkdir /usr/local/apache/jsp
# chown nobody:nobody /usr/local/apache/jsp

zone.propertiesをコピーしGNUJSP動作の専用ZONE(alph.properties)を用意します。

# cd /usr/local/apache/conf/jserv
# cp zone.properties alph.properties

jserv.propertiesを設定します。

zones=root,alph
alph.properties=/usr/local/apache/conf/jserv/alph.properties

wrapper.classpath=/usr/local/apache/beans
wrapper.classpath=/usr/local/jdk/lib/tools.jar

alph.propertiesを設定します。

repositories=/usr/local/gnujsp/lib/gnujsp10.jar
repositories=/usr/local/gnujsp/lib/servlet-2.0-plus.jar

servlet.gnujsp.code=org.gjt.jsp.JspServlet

servlet.gnujsp.initArgs=checkclass=true,pagebase=/usr/local/apache/htdocs,scratchdir=/usr/local/apache/jsp,debug=true,compiler=builtin-javac -classpath %classpath%:%scratchdir%:/usr/local/gnujsp/lib/servlet-2.0-plus.jar:/usr/local/gnujsp/lib/gnujsp10.jar -d %scratchdir% -deprecation -encoding %encoding% %source%

jserv.confを設定します。

ApJServMount /alph /alph
ApJServAction .jsp /alph/gnujsp

Apacheを再起動してテスト

# /usr/local/apache/bin/apachectl restart

hellp.jspなどをドキュメントルート以下へコピーして、以下のURLを開いてみます。

http://HOSTNAME:PORT/hello.jsp

自動起動の設定

/etc/rc.d/rc.localに以下を追加します。

# Start Apache
/usr/local/apache/sbin/apachectl start