Tomcat
目次
Tomcatとは?
サーブレットコンテナの1つ。
Linux、Windows、Macにインストール可能。
開発とデバッグ用にWEBサーバ機能もあり
サーブレットコンテナ
サーブレットコンテナとは?
=WEBコンテナ
=サーブレットエンジン
Webサーバー上でJavaプログラム(JAVAサーブレット、JSP)を動作させるソフトウェア
サーブレットアプリケーションと連携して動作する。
HTMLや画像などの静的コンテンツは高速なWebサーバ(Apache等)が担当
動的コンテンツのみサーブレットコンテナが担当する。
サーブレットコンテナの機能
・ライフサイクル管理
サーブレットをロードしプロセスをメモリ内に常駐させる
クライアントからのHTTPリクエストに応じてスレッドを生成し、非同期でサーブレットを呼び出す。
一定時間サーブレットに処理要求が無い場合や、コンテナが終了する場合にプロセスを自動終了させる
・セッション管理
クライアントとのセッション情報のやり取りを自動で行い、
同一クライアントか否か?の判定を行う。
インストール
手順
Apache Tomcat 公式ダウンロードサイト
デフォルトではポート:8080が設定される。
IIS、Apache等をインストール済みの場合は変更する必要あり
設定
ファイルリスト表示
(開発用。本番サーバーでは不可)
~\Tomcat 9.0\conf\web.xml
<servlet>
<servlet-name>default</servlet-name>
<servlet-class>org.apache.catalina.servlets.DefaultServlet</servlet-class>
略
<init-param>
<param-name>listings</param-name>
<param-value>false</param-value>
↓
<param-value>true</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
コマンド
内容 | ファイル |
---|---|
起動 | ~\Tomcat X.X\bin\startup.bat |
停止 | ~\Tomcat X.X\bin\shutdown.bat |
実行確認
ブラウザからlocalhost、ポート:8080をリクエスト
管理ツール
ディレクトリ構成
tomcat~
├ bin :実行ファイル
├ conf :設定ファイル(tomcat-users.xml、server.xml)
├ lib
├ logs :ログ
├ temp
├ work
└ webapps :公開ディレクトリ
├ manager :管理ツール
└ (アプリケーションルート)
├ (パッケージ名)
| └ JSPファイル(~.jsp)
└ WEB-INF
├ classes:プログラム保存場所
| └ (パッケージ名)
| └ クラスファイル(~.class)
├ lib:ライブラリ(API)
└ web.xml:アプリケーション用設定ファイル(デプロイメントディスクリプタ)
コンテキスト設定ファイル
※(ファイル名).xml
<?xml version="1.0"?>
<Context docBase="~\(公開ディレクトリ)\(アプリケーションルート)" path="/(呼び出し名)"/>
~\(公開ディレクトリ)\(アプリケーションルート) = (呼び出し名)
となる
例 test.xml
<?xml version="1.0"?>
<Context docBase="c:/tomcat~\webapps/test" path="/myApp"/>
呼び出し時
http://localhost:8080/myApp/test.jsp
コンテキスト設定ファイルの配置
tomcat~\conf\Catalina\localhost\コンテキスト設定ファイル
例
tomcat~\conf\Catalina\localhost\test.xml
デプロイメントディスクリプタ
アプリケーション用設定ファイル
「JAVA デプロイメントディスクイプタ」参照
tomcat-users.xml
Tomcat内にある全Webアプリケーションの設定
<?xml version='1.0' encoding='ms932'?>
<tomcat-users
xmlns="http://tomcat.apache.org/xml"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://tomcat.apache.org/xml tomcat-users.xsd"
version="1.0">
<user username="~" password="~" roles="manager-gui" />
Tomcat Manager Applicationのアカウント情報
<user username="~" password="~" roles="test1-gui, test2-gui" />
任意のアカウント情報
</tomcat-users>
server.xml
任意のアプリケーションの設定
<Context …>
…
<Realm className="org.apache.catalina.realm.MemoryRealm" debug="1"
pathname="/home/tomcat/~/WEB-INF/users.xml" />
…
</Context>
context.xml
Tomcat5以降
server.xmlの代わり
server.xmlとcontext.xmlの両方に設定値を入力した場合、
server.xmlの内容は、context.xmlの内容で上書きされる。
<Context path="/javaroad"
docBase=
"C:\Program Files\Apache Software Foundation\Tomcat 5.0\webapps\javaroad" debug="0">
<Valve
className="org.apache.catalina.valves.AccessLogValve"
directory="logs/AccessLog" />
コネクションプーリング利用時
<Resource
データソース名(設定名)
name="jdbc\myDataSource"
データソース利用時は以下固定
auth="Container"
type="javax.sql.DataSource"
JDBCドライバ毎の固定名称(クラス名)
driverClassName="org.gjt.mm.jmsql.Driver"
接続情報
username="~"
password="~"
url="//localhost/~"
最大接続数
maxActive="4"
接続時の最大待ち時間(ミリ秒)
maxWait="5000"
待機プーリング数
maxIdle="2"
接続検証用SQL文
validationQuery="SELECT ~"
短い時間で取得できるクエリが望ましい
/>
</Context>