Apache TomcatはJava ServletやJSPを実行するためのサーブレットコンテナで、Apacheソフトウェア財団が開発しているオープンソースソフトウェアである。Webサーバとしても使用できる。
WindowsにTomcatをインストールするには、次の手順で行う。
http://localhost:8080/
を開いてTomcatの画面が表示されればインストール完了。
環境変数 | 説明 | 必須 |
---|---|---|
CATALINA_BASE | Webアプリケーションや設定ファイルを配置したパス | いいえ |
CATALINA_HOME | Tomcatをインストールしたパス | いいえ |
JAVA_HOME | JDKをインストールしたパス | はい |
UnixでTomcatを起動するには、次の手順で行う。
$ /usr/local/tomcat/bin/startup.sh
WindowsのGUIでTomcatを起動するには、次の手順で行う。
WindowsのCUI(コマンドプロンプトなど)でTomcatを起動するには、次の手順で行う。
C:\pleiades\tomcat\8\bin> starup.bat
UnixでTomcatを停止するには、次の手順で行う。
$ /usr/local/tomcat/bin/shutdown.sh
WindowsのGUIでTomcatを停止するには、次の手順で行う。
WindowsのCUI(コマンドプロンプトなど)でTomcatを停止するには、次の手順で行う。
C:\pleiades\tomcat\8\bin> shutdown.bat
webapps/ROOT下にWebコンテンツを配置する。
ログファイルは$CATALINA_BASE/log/catalina.outに作成される。
Tomcatの設定は次に示すファイルで行う。
設定ファイル | 説明 |
---|---|
context.xml | コンテキストの設定 |
server.xml | Tomcat全般の設定 |
tomcat-users.xml | ユーザとロールの設定 |
web.xml | URLとサーブレットのマッピングを行う配備記述子 |
context.xmlとは、Tomcatで管理するコンテキスト(ひとまとまりのアプリケーション群)を設定するファイルである。コンテキストにはアプリケーション群の動作に必要なJSP、Servlet、HTML、画像、JAR、web.xmlなどが含まれる。
context.xmlでデータソースを設定する例を示す。
<Resource name="jdbc/foo_datasource"
auth="Container"
type="javax.sql.DataSource"
driverClassName="oracle.jdbc.OracleDriver"
url="jdbc.oracle:thin:@dbsrvr1:1521:db1"
username="scott"
password="tiger"
maxActive="20"
maxIdle="10"
maxWait="-1" />
server.xmlはTomcatの動作を定義する設定ファイルである。server.xmlは$CATALINA_HOMEディレクトリに配置する。
WebアプリケーションをTomcatへ登録するには、Tomcatのフォルダ\conf\server.xml
ファイルにコンテキストタグを追加します。
<Host>
<Context path="/myapps" docBase="myapps" debug="0" reloadable="true">
</Context>
</Host>
Tomcatのフォルダ\webapps
の下にWebアプリケーションを配置した場合、Tomcatの起動時に自動的に認識するため、上記タグの追加は必要ありません。
server.xmlにコンテキストタグを追加したら、Tomcatを再起動します。
confディレクトリにあるtomcat-users.xmlファイルは、ユーザやロールに関する設定が格納されている。
管理者アカウントのユーザ名とパスワードを追加するサンプルを示す。
<role rolename="manager-gui" />
<user username="admin" password="admin" roles="manager-gui" />
web.xmlは、URLとサーブレットをマッピングする配備記述子を設定するファイルである。
URIにディレクトリを指定した場合に開かれるファイルのことをウェルカムファイルと言います。例えば
www.sample.com/
というURLを指定したときに
www.sample.com/index.html
が開かれたとすると、
index.html
がウェルカムファイルです。ウェルカムファイルのリストは web.xml で指定することができます。
<welcome-file-list>
<welcome-file>index.html</welcome-file>
<welcome-file>index.htm</welcome-file>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
サーブレットマッピングとは、あるURLにリクエストがあったときに、どのサーブレットを呼び出すか制御することです。
<web-apps>
<servlet>
<servlet-name>myservlet</servlet-name>
<servlet-class>HelloWorldServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>myservlet</servlet-name>
<url-pattern>/servlet/HelloWorldServlet</url-pattern>
</servlet-mapping>
</web-apps>
リクエストを受ける前にサーブレットで初期化処理を行いたい場合、サーブレットのスーパークラスであるjavax.servlet.http.HttpServletクラスのinitメソッドをオーバーライドします。
初期化パラメータはデプロイメントディスクリプタ(/WEB-INF/web.xml)のservlet要素に記述します。記述する場所は、初期化パラメータを受け取りたいサーブレットを定義したservlet要素の中です。init-param要素の子としてparam-name要素とparam-value要素を記述します。次に定義例を示します。
<servlet>
<servlet-name>SampleServlet</servlet-name>
<servlet-class>com.sample.SampleServlet</servlet-class>
<init-param>
<param-name>host</param-name>
<param-value>localhost</param-value>
</init-param>
</servlet>
この例では、SampleServletの初期化パラメータとしてhostという名前でlocalhostという値を定義しています。
この初期化パラメータを受け取るにはgetInitParameterメソッドを使用します。次にinitメソッドから初期化パラメータを取得するJavaソースの例を示します。
public void init(ServletConfig sc) throws ServletException {
super.init(sc);
String host = sc.getInitParameter("host");
次にサーブレットのserviceメソッドから初期化パラメータを取得する例を示します。
public void service(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
String host = this.getInitParameter("host");
Webアプリケーションに含まれるJSPおよびHTML、JavaのクラスファイルなどをひとつのファイルにまとめたものをWARファイルといいます。WARファイルは、ある決められたディレクトリ構成のものをJARファイルと同じ形式でまとめられたものです。
WARファイルの標準ディレクトリレイアウトを次に示す。
myapps以下をまとめてmyapps.warというWARファイルを作成して、他のサーバーへ配布することができます。
Tomcatのバージョン、OSやJVMのプロパティを表示します。
OK - Server info
Tomcat Version: Apache Tomcat/5.0.28
OS Name: Windows 2000
OS Version: 5.0
OS Architecture: x86
JVM Version: 1.4.2_04-b05
JVM Vendor: Sun Microsystems Inc.