Tomcat4を動かす
Tomcat4を動かす
0.改訂履歴
1.はじめに
このドキュメントでは,Tomcat4をMacOS Xで動かす手順を説明する.
なお,使用しているTomcatは,4.0.4である.
また,今回はMacOS Xで動かしているが,UNIX系の他のOSでも同じだと思われる.
2.Tomcatとは
簡潔に,Tomcatの紹介を以下に述べる.これをしらなくても,インストールは出来るが豆知識?に必要かと.
2.1.特徴と生い立ち
- フリーソフト.
- Javaのソフトなので,1つのモジュールでプラットホーム(OS)を選ばない.
- Apacheプロジェクトの傘下に,JServというソフトを開発していたThe Java Apache Projectがあった.
- The Java Apache Projectを中心に,Sun Microsysytemsからソースコードライセンスを受けて誕生したのが,Jakartaプロジェクトである.
- Tomcatは,Jakartaプロジェクトのサブプロジェクトとして開発が進められているソフトである.
2.2.何する物か
- 簡単にいうと,アプリケーションサーバ.
- JSP(Java Server Pages)やら,Servlet(Java Servlet)を実行するアプリケーション.
- 簡易的なWebサーバ機能を持っているが,それはJSPやServletの開発・デバッグを行うためのもの.
2.3.どんな種類があるの
- 現在使用できるバージョンは2つあり,次のような違いがある.
- 機能を追加する方法として,“コネクタ”がある.
- Tomcat 3.1までは,JServ用のコネクタであるmod_jservを流用していた.
- Tomcat 3.2からは,Apacheとは異なるWebサーバに追加できるよう,コネクタが見直された.
- 現在はmod_jk,mod_jk2,mod_webapp等のコネクタがある.
3.モジュールの入手とインストール
- モジュールは,以下のURLから取得する.
- The Jakarta Site - Apache Tomcat
- 今回は,以下の物を利用した.
- 取得したファイルを展開する.
- インストールの手順と言っても,この展開されたフォルダを適切な場所に移動するだけ.
- Terminalを起動する.
- rootユーザになる.
[localhost:~] shinnai% su - root
Password:■■■■■■■■■■
[localhost:~] root#
|
- インストール先の/usr/localディレクトリを確認する.
[localhost:~] root# cd /usr/local
[localhost:/usr/local] root# ls -la
total 0
drwxr-xr-x 4 root wheel 92 Jul 9 21:58 .
drwxr-xr-x 12 root wheel 364 Sep 3 2001 ..
drwxr-xr-x 4 root wheel 264 Jul 9 21:58 analog
drwxr-xr-x 4 root wheel 92 Aug 16 12:30 bin
[localhost:/usr/local]
|
- 先ほど展開したファイルを,/usr/local以下に移動する.
[localhost:/usr/local] root# mv /Users/shinnai/Desktop/Tomcat/jakarta-tomcat-4.0.4 tomcat
[localhost:/usr/local] root# ls -la
total 0
drwxr-xr-x 4 root wheel 92 Aug 25 01:33 .
drwxr-xr-x 12 root wheel 364 Sep 3 2001 ..
drwxr-xr-x 4 root wheel 264 Jul 9 21:58 analog
drwxr-xr-x 4 root wheel 92 Aug 16 12:30 bin
drwxr-xr-x 33 shinnai staff 1078 Aug 25 01:31 tomcat
[localhost:/usr/local] root#
|
4.環境変数を設定する
- Tomcatは,それ自体がJavaアプリケーションなので,Javaに関連した環境変数の設定と,Tomcat用の環境変数の設定が必要となる.
- 環境変数JAVA_HOMEを設定して確認する.
[localhost:/usr/local] root# setenv JAVA_HOME /Library/Java/Home/
[localhost:/usr/local] root# env | grep JAVA
JAVA_HOME=/Library/Java/Home/
[localhost:/usr/local]
|
- MacOS Xの場合は,以上の通り.
- 環境変数CATALONA_HOMEを設定して確認する.
[localhost:/usr/local] root# setenv CATALINA_HOME /usr/local/tomcat
[localhost:/usr/local] root# env | grep CATALINA
CATALINA_HOME=/usr/local/tomcat
[localhost:/usr/local] root#
|
5.Tomcatを起動する
- startup.shを利用して,Tomcatを起動する.
[localhost:/usr/local] root# $CATLINA_HOME/bin/startup.sh
OK? $CATALINA_HOME/bin/startup.sh? yes
Using CATALINA_BASE: /usr/local/tomcat
Using CATALINA_HOME: /usr/local/tomcat
Using CATALINA_TMPDIR: /usr/local/tomcat/temp
Using JAVA_HOME: /Library/Java/Home/
[localhost:/usr/local] root#
|
- Webブラウザでアクセスする.
- Tomcatでは,デフォルトは8080ポートを使っているので,URLは以下の通りとなる.
- http://localhost:8080/
- 起動している模様.
- JSP examplesをクリックしてみる.
6.エラーの原因を調べる
- いきなりエラーがでても,経験がないのでつらいですねぇ.
- しかし,だいたいこういうサーバソフトは,エラーログをはき出す物なので,それを確認して見ようと考える.
[localhost:/usr/local/tomcat] root# ls -la
total 536
drwxr-xr-x 34 shinnai staff 1112 Aug 25 02:39 .
drwxr-xr-x 5 root wheel 126 Aug 25 01:33 ..
-rw-rw-rw- 1 shinnai staff 8196 Aug 25 02:39 .DS_Store
-rwxr-xr-x 1 shinnai staff 4629 Jun 10 22:08 LICENSE
-rwxr-xr-x 1 shinnai staff 3148 Jun 10 22:08 README.txt
-rwxr-xr-x 1 shinnai staff 2430 Jun 10 22:08 RELEASE-NOTES-4.0-B1.txt
-rwxr-xr-x 1 shinnai staff 15409 Jun 10 22:08 RELEASE-NOTES-4.0-B2.txt
-rwxr-xr-x 1 shinnai staff 5573 Jun 10 22:08 RELEASE-NOTES-4.0-B3.txt
-rwxr-xr-x 1 shinnai staff 15133 Jun 10 22:08 RELEASE-NOTES-4.0-B4.txt
-rwxr-xr-x 1 shinnai staff 7148 Jun 10 22:08 RELEASE-NOTES-4.0-B5.txt
-rwxr-xr-x 1 shinnai staff 22713 Jun 10 22:08 RELEASE-NOTES-4.0-B6.txt
-rwxr-xr-x 1 shinnai staff 13480 Jun 10 22:08 RELEASE-NOTES-4.0-B7.txt
-rwxr-xr-x 1 shinnai staff 14596 Jun 10 22:08 RELEASE-NOTES-4.0-RC1.txt
-rwxr-xr-x 1 shinnai staff 9677 Jun 10 22:08 RELEASE-NOTES-4.0-RC2.txt
-rwxr-xr-x 1 shinnai staff 13402 Jun 10 22:08 RELEASE-NOTES-4.0.1-B1.txt
-rwxr-xr-x 1 shinnai staff 13545 Jun 10 22:08 RELEASE-NOTES-4.0.1.txt
-rwxr-xr-x 1 shinnai staff 17080 Jun 10 22:08 RELEASE-NOTES-4.0.2-B1.txt
-rwxr-xr-x 1 shinnai staff 12457 Jun 10 22:08 RELEASE-NOTES-4.0.2-B2.txt
-rwxr-xr-x 1 shinnai staff 12714 Jun 10 22:08 RELEASE-NOTES-4.0.2.txt
-rwxr-xr-x 1 shinnai staff 15181 Jun 10 22:08 RELEASE-NOTES-4.0.4.txt
-rwxr-xr-x 1 shinnai staff 7817 Jun 10 22:08 RELEASE-NOTES-4.0.txt
-rwxr-xr-x 1 shinnai staff 2618 Jun 10 22:08 RELEASE-PLAN-4.0.1.txt
-rwxr-xr-x 1 shinnai staff 2751 Jun 10 22:08 RELEASE-PLAN-4.0.txt
-rwxr-xr-x 1 shinnai staff 6119 Jun 10 22:08 RUNNING.txt
drwxr-xr-x 21 shinnai staff 670 Aug 25 01:30 bin
drwxr-xr-x 2 shinnai staff 264 Aug 25 01:30 classes
drwxr-xr-x 4 shinnai staff 92 Aug 25 01:30 common
drwxr-xr-x 7 shinnai staff 264 Aug 25 01:30 conf
drwxr-xr-x 5 shinnai staff 126 Aug 25 01:30 lib
drwxr-xr-x 8 shinnai staff 264 Aug 25 01:41 logs
drwxr-xr-x 4 shinnai staff 92 Aug 25 01:30 server
drwxr-xr-x 2 shinnai staff 264 Aug 25 02:11 temp
drwxr-xr-x 7 shinnai staff 264 Aug 25 01:31 webapps
drwxr-xr-x 3 shinnai staff 264 Aug 25 01:37 work
[localhost:/usr/local/tomcat] root#
|
- それらしいlogsディレクトリがあったので移ってみる.
[localhost:/usr/local/tomcat] root# cd logs
[localhost:local/tomcat/logs] root#
|
[localhost:local/tomcat/logs] root# ls -l
total 184
-rw-r--r-- 1 root staff 514 Aug 25 01:41 apache_log.2002-08-25.txt
-rw-r--r-- 1 root staff 308 Aug 25 01:43 catalina.out
-rw-r--r-- 1 root staff 3058 Aug 25 01:43 catalina_log.2002-08-25.txt
-rw-r--r-- 1 root staff 2411 Aug 25 02:04 localhost_access_log.2002-08-25.txt
-rw-r--r-- 1 root staff 5050 Aug 25 01:42 localhost_examples_log.2002-08-25.txt
-rw-r--r-- 1 root staff 10176 Aug 25 01:45 localhost_log.2002-08-25.txt
[localhost:local/tomcat/logs] root#
|
- Javaなので,Exceptionをキーワードでログを検索してみる.
[localhost:local/tomcat/logs] root# cat localhost_examples_log.2002-08-25.txt | grep Exception
java.lang.ClassNotFoundException: filters.SetCharacterEncodingFilter
java.lang.ClassNotFoundException: filters.SetCharacterEncodingFilter
[localhost:local/tomcat/logs] root#
|
- filtersの中の,setCharacterEncodingFilterというclassってのが無いと言ってる.
- 探してみる.
[localhost:local/tomcat/logs] root# find /usr/local/tomcat -name 'SetCharacter*' -print
/usr/local/tomcat/webapps/examples/WEB-INF/classes/filters/SetCharacterEncodingFilter.clas
/usr/local/tomcat/webapps/examples/WEB-INF/classes/filters/SetCharacterEncodingFilter.java
[localhost:local/tomcat/logs] root#
|
[localhost:local/tomcat/logs] root# cd /usr/local/tomcat/webapps/examples/WEB-INF/classes/filters/
[localhost:WEB-INF/classes/filters] root# ls -la
total 88
drwxr-xr-x 8 shinnai staff 228 Aug 25 02:09 .
drwxr-xr-x 39 shinnai staff 1282 Aug 25 01:31 ..
-rwxr-xr-x 1 shinnai staff 2323 Jun 10 22:08 exampleFilter.class
-rwxr-xr-x 1 shinnai staff 6470 Jun 10 22:08 exampleFilter.java
-rwxr-xr-x 1 shinnai staff 5665 Jun 10 22:08 RequestDumperFilter.class
-rwxr-xr-x 1 shinnai staff 9148 Jun 10 22:08 RequestDumperFilter.java
-rwxr-xr-x 1 shinnai staff 1959 Jun 10 22:08 SetCharacterEncodingFilter.clas
-rwxr-xr-x 1 shinnai staff 8135 Jun 10 22:08 SetCharacterEncodingFilter.java
[localhost:WEB-INF/classes/filters] root#
|
- 拡張子が,clasになっている.
- 名前を変更する.
[localhost:WEB-INF/classes/filters] root# mv SetCharacterEncodingFilter.clas SetCharacterEncodingFilter.class
[localhost:WEB-INF/classes/filters] root# ls -la
total 88
drwxr-xr-x 8 shinnai staff 228 Aug 25 02:09 .
drwxr-xr-x 39 shinnai staff 1282 Aug 25 01:31 ..
-rwxr-xr-x 1 shinnai staff 2323 Jun 10 22:08 exampleFilter.class
-rwxr-xr-x 1 shinnai staff 6470 Jun 10 22:08 exampleFilter.java
-rwxr-xr-x 1 shinnai staff 5665 Jun 10 22:08 RequestDumperFilter.class
-rwxr-xr-x 1 shinnai staff 9148 Jun 10 22:08 RequestDumperFilter.java
-rwxr-xr-x 1 shinnai staff 1959 Jun 10 22:08 SetCharacterEncodingFilter.class
-rwxr-xr-x 1 shinnai staff 8135 Jun 10 22:08 SetCharacterEncodingFilter.java
[localhost:WEB-INF/classes/filters] root#
|
7.Tomcatをシャットダウンする
[localhost:WEB-INF/classes/filters] root# $CATALINA_HOME/bin/shutdown.sh
Using CATALINA_BASE: /usr/local/tomcat
Using CATALINA_HOME: /usr/local/tomcat
Using CATALINA_TMPDIR: /usr/local/tomcat/temp
Using JAVA_HOME: /Library/Java/Home/
[localhost:WEB-INF/classes/filters] root#
|
8.サンプルを動かしてみる
[localhost:WEB-INF/classes/filters] root# $CATALINA_HOME/bin/startup.sh
Using CATALINA_BASE: /usr/local/tomcat
Using CATALINA_HOME: /usr/local/tomcat
Using CATALINA_TMPDIR: /usr/local/tomcat/temp
Using JAVA_HOME: /Library/Java/Home/
[localhost:WEB-INF/classes/filters] root#
|