3 連載 /JavaServer Pages— 図 5 Tomcat 3.2.1 ソースコードのダウンロ ード トフ′イル表示叨お気に入りツ - - ヘルフ - の物歴をメール アドレス ) ] h , い / / は“ he 国 0 奴土 o„„ : 0 レト 0 ”ん 3 : 1 朝こ / 】いい / も u 彦 0 リ第物 21 / ヨ - 、ロ朝 50 い”一ツ lndex of /builds/tomcat/release/v3.2. l/src 0 0 0 08 - J を 0 ・ 2001 06 : 20 14 ・ 0 ”・ 2000 1 に 23 ロ Sk 3 鱸 い 2k 1.7 当 833k をを「を代トⅳを GZIP 00 、 p 「をを sed ーⅱ 0 をを「を代 h ー GZI P 00 を 0 「 5 ー ed 一日 0 .4 〃 00 物 0 ・ 20 ーティぐ S ぐⅣ 0 ′・誂 . なを 0 ′〃に ch ぎ Po に 0 86 ・ JSSE (Java Secure Socket Extension ・ Servlet api ・ Ant ウェアも必要になります。 を作るには、 Tomcat のソースコード以外に次のソフト ソースコードからコンパイルして実行可能な Tomcat ソースコードを入手してください。 お好きな形式のアーカイプ・ファイルをダウンロードし、 ンロード・ページカ俵示されます ( 図 5 ) 。 クすれは、バイナリのときと同様に、ソースコードのダウ このページにある、、 Tomcat 3.2.1 " のリンクをクリッ ださい。 リックし、、、 source Downloads" のページへ移動してく Download メニューの下の、、 Source C0de" リンクをク ⅱノし みたい方は、 Jakarta フロジェクトの Web ページの Tomcat を自分でコンパイルしたり、ソースコードを Tomcat のソースコードの入手 ます。 とは関係なくバイナリ版の Tomcat を動かすことができ て、 Java の実行韆竟さえあ川ま、基本的には OS の不鶤頁 イルした機種に依存しない . class ファイルです。したがっ リファイルに含まれているのは、 Java のソースをコンパ Tomcat 自体は Java で実装されているため、バイナ ロードしてください。 や宿の形式だけなので、都合がよいものを選んでダウン の 3 不頁が用意されています。これらの違いはアーカイプ http://jakarta.apache.org/builds/tomcat/release/v3.2.1/ なお、 JSSE には Java 2 (JDK 1.2. x ) が必要なので、 Tomcat をソースコードからコンパイルする場合は JDK 1.2.2 を使ってください。 Ant の入手 Ant は Java 版の rnake コマンドで、 Tomcat のソース コードをコンパイルするときにイ吏用します。山斤版の Ant 1.3 は、 Jakarta フロジェクトの以下の URL から、バイ ナリまたはソースコードの形式で入手できます。 バイナリ http://jakarta.apache.org/builds/ant/release vl. 3 / b ⅲ / ・ソースコード http://jakarta.apache.org/builds/ant/release vl. 3/src/ Ant のコンノヾイルはこのはかにも多くの Java のライプ ラリが必要になりやや複雑なので、今回はバイナリ版を使 うことにします。 ServIetapi の入手 Servletapi は、 Jakarta フロジェクトのサフフロジェ クトです。図 5 のページから、 ・ jakarta-servletapi-3.2-src. tar. Z ・ jakarta-servletapi-3.2-src. tar. gz jakarta-servletapi-3.2-src. zip のいすれかをダウンロードしてください。 JSSE の入手 JSSE は、 Tomcat に SSL (Secure Sockets Layer) と TLS (Transport Layer Security) の機能を追加する ための Java のライプラリで、 Sun Microsystems から 無賞で入手できます。ただし、ユーザー登金ゞ必要だった り、法的な間題で入手できないバージョンがあったりする ので、ダウンロード作業は Web ページの内容をよく石忍 しながら注意架く進めてください。 JSSE をダウンロードするには、最初に図 6 のページに アクセスします。勇ましい恰好の Duke 君 (Java のマス コット ) に出迎えてもらいましよう。 このページの、、 Downloads' の欄には、 UNIX MAGAZINE 2001.5
く /target> く /project> ・ TOMCAT-HOME 環境変数に Tomcat のインスト ール先ディレクトリを設定する。 ・ JAVA-HOME 工竟変数に JDK のインストール先デ ィレクトリを設定する。 たとえは UNIX の環境で、 ・ Tomcat カゞ /usr/local/jakarta-tomcat-3.2.1 ・ JDK が /usr/local/jdkl. 2.2 にそれぞれインストールされている場合、 Bourne シェル を使用しているのなら次の 2 行を . shrc に」助日します。 TOMCAT_HOME=/usr/Ioca1/j akarta—tomcat—3.2.1 ; export TOMCAT—HOME JAVA_HOME=/usr/10ca1/j dkl . 2 . 2 ; export JAVA_HOME UNIX の C シェルや Windows をイ更用している場合 も、同様に工竟変数を設定してください。 続いて、 Tomcat をインストールしたディレクトリの UNIX MAGAZINE 2001.5 3 連載 JavaServer Pages— 図 13 Servletapi の build. xml ファイル ( 抜粋 ) く project name="Serv1et API C1asses" default="compile" basedir=" . " > く property name= . home " く property name="build. compiler" ="${servletapi . dist}/docs"/> "${servletapi . dist}/lib"/> "${servletapi . dist}/src"/> ローカ value="classic"/> . /jakarta—ant" / > Environmenta1 Properties く property name= . /dist/servletapi"/> servletapi . dist" value= Prepare Directories く target name= "Dist" く mkdir dir= く mkdir dir く mkdir dir く mkdir dir= く mkdir dir= く /target> prepare"> Hierarchy ーー > "${servletapi ="${servletapi . dist}/docs/api"/> Distribution Fi1es く target name="dist " depends=" compile , 」 avadoc"> dest="${servletapi . lib}/servlet . jar"/> く copyfile src="${servletapi . dist}/lib/servlet . jar' く copydir src="src/share" dest="${servletapi. dist}/src"/> く copyfile src="build. xml" dest="${servletapi . dist}/lib/build. xml"/> basedir="${servletapi . build}/classes"/> く jar jarfile="${servletapi. dist}/lib/servlet . jar" dest="${servletapi . dist}/docs/api"/> く copydir src="${servletapi . build}/docs/api' 下の bin ディレクトリにある startup. sh (Windows の 場合は startup. bat) を実行します。 $ /usr/local/j akarta—tomcat—3.2. l/bin/ startup . sh これで Web サーバーか起動します。 Web サーバーを停止するときは、 startup. sh と同し ディレクトリにある shutdown. sh (Windows の場合は ・ http://localhost:8080/ ル言算機上 . の Web プラウザで、 Web サーノヾーが正常に起動できたかどうかは、 shutdown . sh $ /usr/local/j akarta-tomcat—3.2. l/bin/ shutdown. bat) を実行してください。 91 れれば Web サーバーは動いています。 にアクセスして石忍します。図 14 のような画面か表示さ
連載 JavaServer Pages— 図 12 build. sh コマンドの実彳デ列 3 $ cd /usr/local/j akarta/j akarta—servletapi Bui1df ile : build . xm1 $ sh build. sh dist prepare : [mkdi r] [mkdi r] [mkdi r] [mkdir] compile: [j avac] [copydir] [copydir] j avadoc : [j avadoc] [j avadoc] [j avadoc] /usr/local/j akarta/build/servletapi /usr/local/jakarta/build/servletapi/classes /usr/local/j akarta/build/servletapi/docs /usr/local/j akarta/build/servletapi/docs/api source files tO /usr/local/jakarta/build/servletapi/classes DEPRECATED ー The copydir task is deprecated. Use copy instead. Compi1ing 40 Created dir : Created dir : Created dir : Created dir : Loading source files for package Javax. servlet . Javadoc execution Generating Javadoc Copying 3 files t0 /usr/local/jakarta/build/servletapi/classes BUILD SUCCESSFUL Tota1 time : 8 seconds $ cd /usr/local/j akarta/j akarta—tomcat Bui1dfi1e : build . xm1 $ sh build . sh dist prepare : [mkdir] [mkdir] [mkdir] t omc at : [j avac] [j ar] [delete] [j ar] [delete] Created dir: Created dir: Created dir: /usr/local/j akarta/build/tomcat /usr/local/j akarta/build/tomcat/bin /usr/local/j akarta/build/tomcat/classes Compi1ing 217 source files t0 /usr/local/jakarta/build/tomcat/classes De1eting directory /usr/local/j akarta/dist/tomcat/webapps/test Bui1ding j ar : /usr/local/j akarta/dist/tomcat/webapps/test . war De1eting directory /usr/local/j akarta/dist/tomcat/webapps/ROOT Bui1ding j ar : /usr/local/j akarta/dist/tomcat/webapps/ROOT. war BUILD SUCCESSFUL Tota1 time : 1 minute の build. xml の一部です。 0 seconds Servletapi も Tomcat も、、、 BUILD SUCCESS- FUL" という文字列が表示されればコンパイルは成功で す。 Tomcat のディレクトリと同し階層にある、、 dist" デ ィレクトリの下に、コンパイル済みの竟がインストール されているのて市忍してください。 今回の例では、 ・ /usr/local/jakarta/dist/tomcat に Tomcat の工鳬があります。 90 Web サーパーの起動と停止 バイナリをインストールしても、ソースコードからコン パイルしてインストールしても、 JSP サーバーの起動手順 は共通です。 UNIX MAGAZINE 2001.5 です。 ドやクラスファイルの場所をプログラムか知るために必要 おきます。これらは、 Tomcat と JDK に刊属するコマン Tomcat の夫行前に、次の 2 つの環よ竟変数を設定して
連載 完了します。 JavaServer Pages たとえは、 UNIX で /usr/local/jakarta-tomcat-3.2. トールするために、次のソフトウェアを用意したものとし こでは、 Tomcat 3.2.1 をなるべく手軽にインス したソフトウェアがひととおり揃っているカ師忍してくだ 最初に、「 Tomcat のソースコードの入手」の項で言見明 はありません。 などですが、逆にこれらを克服してしまえは、さほど苦労 ・ディレクトリ構成に注意が必要 ・手順が ( バイナリのインストールとくらべて ) 複雑 竟変数の設定が必要 ・コンパイル時に必要なソフトウェアが多い ストールするのはかなり面倒です。その理由は、 バイナリ版にくらべ、 T 。 mcat をソースコードからイン ソースコードのコンパイルとインストール を使ってインストールしてください。 Windows の場合は、 ZIP 形式を展開できるプログラム ・ http://www.gnu ・ org/ の以下の Web ページから入手できます。 gzip コマンドが手許にない場合は、 GNU プロジェクト 成し、その下に関連するファイルを展開します。なお、 jakarta-tomcat-3.2.1" という名前のディレクトリを作 上記のコマンドは、 /usr/local ディレクトリの下に tar xvf # gzip —d /tmp/j akarta-tomcat-3.2.1. tar. gz ー # cd /usr/local しています。以一日司様 ) 。 レクトリにあるものとします ( 誌面の都合上、で折り返 ただし、 Tomcat のアーカイプ・ファイルは /tmp ディ るユーサーになって、次のようなコマンドを実行します。 1 にインストールするには、 /usr/local に書込別限のあ 88 ・ Tomcat 3.2.1 ( ソ ・ Servletapi 3.2 ( ソ ・ Ant 1.3 ( バイナリ ) ・ JSSE 1.0.2 ・ JDK 1.2.2 て説明をします。 ースコード ) ースコード ) 以後の手順はおおよそ次のとおりです。 1. ソースファイルを所定の場所に展開する。 2. コンパイルのための環境変数を設定する。 3. 必要なソースコードをコンパイルする。 ます、上記のファイルをそれぞれ適切なディレクトリの UNIX MAGAZINE 2001.5 —Ant の bin ディレクトリ —JDK の bin ディレクトリ ・ PATH 竟変数に次のディレクトリを設定する。 設定する。 ・ ANT-HOME 環竟変数に Ant のインストール場所を を設定する。 ・ JAVA-HOME 環境変数に JDK のインストール場所 ルをみつけるために利用されます。 します。これは、コンパイル時にコマンドやクラスファイ 次に、 Java コンパイラなどか参照する竟変数を設疋 竟変数の設定 ・ jakarta-tomcat-3.2. l-src → jakarta-tomcat ・ jakarta-servletapi-3.2-src → jakarta-servletapi ・ jakarta-ant- 1.3 → jakarta-ant 名を変更します。 こでは説明を簡単にするために以下のようにディレクトリ 定ファイルを変更してエラーを防ぐこともできますが、 ディレクトリ名ではなく、コンパイルガ去を指定する設 変更するのがコツです。 ではコンパイル時にエラーになるので、ディレクトリ名を 下にバイナリが展開されます。このままのディレクトリ名 jakarta-ant-l. 3" というディレクトリが作成され、その ジを展開します。たとえば、 Ant のバイナリを展開すると します ) 、そこに Ant 、 Servletapi 、 Tomcat のノヾッケー レクトリを 1 つ用意し ( ここでは /usr/local/jakarta と Tomcat をスムーズにコンパイルするには、共通のディ にそれぞれ展開したとして話を進めます。 /usr/local/jssel. 0.2 /usr/local/jdkl. 2.2 こでは、 せん。 下に置きます。 JDK と JSSE はどこに置いてもかまいま
・ CLASSPATH 工竟変数に次のディレクトリやファイ ルを設疋する。 —JSSE の jnet. jar ファイル —JSSE の jsse. jar ファイル —JSSE の jcert. jar ファイル —Ant の parser. jar ファイノレ —Ant の jaxp. jar ファイル —JDK の lib ディレクトリ UNIX MAGAZINE 2001.5 は目立ちません。ューザーはそれぞれのサプディレクトリ いよいよ Ant の出番ですが、残念なことに Ant の活躍 次に、 Servletapi と Tomcat をコンパイルします。 コン / ヾイノレ にしてください。 bat ファイルなどに追加して、環竟変数か設定されるよう また、 Windows では図 11 のコードを C:*autoexec. ム・ディレクトリの . cshrc に追加してください。 C シェルを使っている場合は、図 10 のコードをホー 設定を簡潔にするために使っています。 図中の JSSEMOME 環境変数は必須ではありませんが、 ホーム・ディレクトリの . shrc に追加してください。なお、 Bourne シェルを使っている場合は、図 9 のコードを 連載 /JavaServer Pages—O 図 9 . shrc に追加する Bourne シェル竟変数の言聢 JAVA_HOME=/usr/10ca1/jdk1.2.2 ; export JAVA_HOME ANT_HOME=/usr/10ca1/j akarta/j akarta-ant ; export ANT_HOME JSSE_HOME=/usr/10ca1/jsse1.0.2 ; export JSSE_HOME PATH=$JAVA_HOME/bin : $ANT_HOME/bin : $PATH ; export PATH CLASSPATH=$JAVA_HOME/1ib : $ANT_HOME/1ib/j axp. j ar : $ANT_HOME/Iib/parser. j ar : $JSSE_HOME/1ib/ jcert . jar: $JSSE—HOME/1ib/jsse. jar: $JSSE—HOME/1ib/jnet ・ jar export CLASSPATH 図 10 . cshrc に追加する C シェル環境変数の言 set JAVA—HOME = /usr/local/jdkl . 2.2 set ANT_HOME = /usr/local/j akarta/j akarta—ant set JSSE_HOME = /usr/local/jssel. 0.2 set path = ($JAVA—HOME/bin $ANT—HOME/bin $path) set CLASSPATH = $JAVA_HOME/1ib : $ANT_HOME/1ib/j axp. j ar : $ANT_HOME/1ib/parser. j ar : $JSSE_HOME/ lib/j cert. jar : $JSSE—HOME/1ib/j sse. j ar : $JSSE—HOME/1ib/jnet. j ar 図 11 、 Vindows の autoexec. bat に追加する言聢 set JAVA_HOME=c :%usr*local%jdkl . 2.2 set ANT_HOME=c : %usr%local%j akarta*j akarta—ant set JSSE—HOME=g :*usr*local*jssel . 0.2 set PATH=%JAVA_HOME%Ybin ; %ANT_HOME%*bin ; %PATH% set CLASSPATH=%JAVA_HOME%*1ib ; %ANT_HOME%*1ib*j axp. j ar ; %ANT_HOME%*Iib%parser ・ j ar ; %JSSE_HOME%Y1ib*j cert. j ar ; %JSSE_HOME%*1ib*j sse. j ar ; %JSSE_HOME%*1ib*jnet. j ar は・・ の直下にある、 build. sh スクリプトや build. bat バッチ ファイルを実行するだけです。ューサーが Ant を直接呼 び出す機会はありません。 図 12 は、 UNIX で Servletapi と Tomcat をコンノヾ イルした例で、下線部がユーサーの入力です。 build. sh に 対して引数、、 dist" を指定していますが、これによって、 ・ Java のソースコードのコンノ、イノレ ・ Java のドキュメント (javadoc) の生成 の両方をおこなっています。 Windows クメ昜合は、、、 sh build. sh dist" の代わりに build dist を実行してください。 build. sh や build. bat は、生成する対象を指定する 、、ターゲット " を引数として渡せます。ちょうど make コ マンドでターゲットを指定するのと同しです。ということ ターゲットについて記述する Makefile のよう 89 ゲットやその生成去を言当します。図 13 は Servletapi る build. xml があります。 build. xml には生成するター ご想像のとおり、 build コマンドにも Makefile にあた なファイルが必要なはすですね。