Apache Tomcat は,Java Servlet, JavaServer Page の実装です. The Apache Jakarta Project の成果物です.
Apache Tomcat バージョン 5.5 のインストールとテスト実行を行います.
特記事項: Tomcat バージョン 6.0 では、Apache MyFaces 1.1 系列と共存できない(こればバグでは無く、規格上の 仕様)
参考Webページ: http://www.searchman.info/java_eclipse/1100.html
Tomcat インストールディレクトリを決めておくこと。 好きに決めていいですが, 半角文字でスペースを含まないこと. この資料では,次のように書きます.
特記事項: Tomcat バージョン 6.0 では、Apache MyFaces 1.1 系列と共存できない(こればバグでは無く、規格上の 仕様)
ダウンロード用Webページは次の通り。 http://tomcat.apache.org/download-55.cgi
「Core」と「Deployer」の2つをダウンロード
「Core」は、「Windows Service Installer」をダウンロード. 「Deployer」は、「zip」をダウンロード
ダウンロードした Tomcat の「Core」をインストールする
必ず,Tomcat, Start Menu Items, Documentation, Examples の全てを選ぶこと. また,Tomcatの左にある「+」を展開して、Service, Native も選んでおくこと.
Choose Install Location は,Tomcat をインストールするディレクトリ(Destination Folder)を設定する 好きに選んでよいが, 必ず,スペースや全角文字が含まないディレクトリにすること. ここでは,「C:\tomcat55 」と設定する
port: 8080 username: admin password: admin
なお,後で,127.0.0.1 以外からの通信はすべてふさぐ予定.
パスの設定マイコンピュータを右クリック → プロパティ → 詳細設定 → 環境変数をクリック
ユーザの環境変数 → 新規
変数名:CATALINA_HOME 変数値:C:\tomcat55
ユーザの環境変数
変数名:PATH 変数値:「%CATALINA_HOME%\bin」を追加
すでに,PATH を定義済みのときは,「;」で区切る.
システム環境変数 → 新規
変数名:CLASSPATH 変数値:「C:\tomcat55\lib\servlet-api.jar」を追加
すでに,CLASSPATH を定義済みのときは,「;」で区切る.
C:\tomcat55\binディレクトリにある tomcat5w.exe のショートカットをデスクトップに作成.
start, stop を押して開始,終了.
先ほどダウンロードした Tomcat の「Deployer」をインストールする. 「Deployer」のファイルを解凍し,出来たファイルをC:\tomcat55 にコピー
参考Webページ: http://www.searchman.info/java_eclipse/1100.html
ダウンロード用Webページは次の通り。 http://tomcat.apache.org/download-55.cgi#5.5.23
「Core」と「Developer」の2つをダウンロード
「Core」は、「tar.gz」をダウンロード. 「Developer」は、「tar.gz」をダウンロード
ファイル apache-tomcat-5.5.23.tar.gz が /tmp にダウンロードされているとする.
cd /usr/local tar -xvzf /tmp/apache-tomcat-5.5.23.tar.gz ln -s apache-tomcat-5.5.23 tomcat55
.bash_profile に次のように設定
export CATALINA_HOME=/usr/local/apache-tomcat-5.5.23 export PATH=$PATH:/usr/local/j2sdk1.6.0/bin:$CATALINA_HOME/bin export CLASSPATH=.:$CATALINA_HOME/common/lib/servlet-api.jar
useradd -r -u 91 -d /dev/null tomcat chown -R tomcat:tomcat tomcat:/*
参考Webページ:https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=171692
su tomcat -c hoge/bin/starup.sh
su tomcat -c hoge/bin/shutdown.sh
先ほどダウンロードした Tomcat の「Developer」をインストールする. 「Developer」のファイルを解凍し,出来たファイルをC:\tomcat5.5 にコピー
Tomcat のディレクトリ構造の把握を学ぶには,下記の Web ページがとても良い.熟読しておく
http://www.searchman.info/java_eclipse/1030.html
C:\tomcat55\webapps\servlets-examples を開く(Windows の場合)
(Linux の場合には /usr/local/tomcat55/webapps/servlets-examples)
C:\tomcat60\webapps\examples を開く(Windows の場合)
ここに html ファイルがある. WEB-INFの下には,web.xml ファイルや,classes ディレクトリがある.
上記のことを良く頭に入れておく.
この URL は、 C:\tomcat55\servlets-examples にマッピングされている。
この URL は、 C:\tomcat60\webapps\examples にマッピングされている。
Servlet Examples ... のページが開くはずである。開かなければ、設定を見直す。
Hello World は
これは, C:\tomcat55\webapps\servlets-examples\WEB-INF\classes\HelloWorldExample.classes にマッピングされている。
Hello World は
これは, C:\tomcat60\webapps\examples\servlets\WEB-INF\classes\HelloWorldExample.classes にマッピングされている。
Java Servlet サンプルプログラムを作成してみます. 説明では、サンプルプログラムを置くディレクトリは、 C:\tomcat55\webapps\helloとします(自由に決めていいです)。
以下,「C:\tomcat55」と書いてある部分は,Linux の場合「/usr/local/tomcat55」に読み替えてください.
---- ここから ---- import java.io.*; import java.text.*; import java.util.*; import javax.servlet.*; import javax.servlet.http.*; public class HelloWorldExample extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException { response.setContentType("text/html; charset=Shift_JIS"); PrintWriter out = response.getWriter(); out.println("<html>"); out.println("Hello World"); out.println("</html>"); out.close(); } } ---- ここまで ----
cd C:\tomcat55\webapps\hello\WEB-INF\classes javac HelloWorldExample.java
コンパイルがうまくいかないとき。 環境変数 CLASSPATH が C:\tomcat55\lib\servlet-api.jar を含んでいること, PATH がc:\Program Files\java\jdk1.6.0_05\bin を含s$G$$$k$3$H$r3NG'$9$k!#
マッピングの指定は、web.xml に書きます。 そのために、 C:\tomcat55\webapps\hello\WEB-INF\web.xml を作る
クラス名を指定する部分は,完全修飾クラス名で指定する. プロジェクト名がhoge.hoge.com、クラス名がHelloWorldExample の場合、 web.xml 内に書く完全修飾クラス名は,hoge.hoge.com.HelloWorldExample のようになる
<?xml version="1.0" encoding="ISO-8859-1"?> <!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd"> <web-app> <servlet> <servlet-name>【好きなサーブレット名】</servlet-name> <servlet-class>HelloWorldExample</servlet-class> hoge.hoge.com.HelloWorldExample </servlet> <servlet-mapping> <servlet-name> 【好きなサーブレット名】 </servlet-name> <url-pattern> /【好きなディレクトリ】 </url-pattern> </servlet-mapping> </web-app>
これで,Servlet のリクエスト URL(http://localhost:8080/hello/【好きなディレクトリ】と,上でコピーペーストした C:\tomcat55\webapps\hello\WEB-INF\classes\HelloWorldExample.classes との対応が出来る.
tomcat5w で,Stop を押して,Start を押す.
「Hello World」と表示されたら成功