Open4

【メモ】Tomcat

あぷしあぷし

server.xml

タグ名 概要
<Server> トップレベル要素。サーブレット・コンテナ全体を設定
<Service> リクエストを処理する<Engine>タグと<Connector>タグの組み合わせグループを設定。<Server>タグ内に1つ以上設定可能
<Executor> コンポーネント間で共有できるスレッドプールを設定
<Engine> リクエストを処理する仕組みを設定。<Service>に対して1つだけ設定
<Connector> クライアントからのリクエストを処理するコネクタの設定。1つ以上設定可能
<GlobalNamingResources> <Service>タグを構成する要素の1つとしてJNDIリソースの設定を行う。<Server>タグに対して1つ設定可能
<Envirionment> JNDIコンテキストを利用してWebアプリケーションが取得できる環境エントリを設定
<Resource> JNDIリソースの基本設定
<ResourceParams> JNDIリソースのパラメータを詳細設定
<Host> 仮想ホストを設定
<DefaultContext> コンテキストの基本設定。コンテキストによる個別の設定は<Context>タグで行う
<Realm> Tomcatでユーザー・パスワード・ユーザーロールの認証方法を設定
<Value> リクエストをインターセプトして処理するのに利用。ログの制御やアクセス制限、リクエストダンプ、シングルサインオンの設定に利用
<Listener> イベントを監視するJavaクラスを指定

参考

あぷしあぷし

context.xml

<Context>タグ

Tomcat上で実行される1個のWebアプリケーションのこと
<Context>タグはserver.xmlに記述することが推奨されていないため、context.xmlに記述するのが一般的

属性

属性名 概要
docBase
cookies
crossContext
override
privileged
reloadable
allowLinking
swallowOutput

配置場所

No. ディレクトリ 適用範囲
1 ${CATALINA_HOME}/conf/server.xml すべてのアプリ(非推奨)
2 ${CATALINA_HOME}/conf/context.xml すべてのアプリ
3 ${CATALINA_HOME}/conf/[エンジン名]/[ホスト名]/context.xml エンジンごと
4 ${CATALINA_HOME}/conf/[エンジン名]/[ホスト名]/[アプリ名].xml 特定のアプリ
5 ${CATALINA_HOME}/webapps/[アプリ名]/META-INF/context.xml 特定のアプリ

起動時に No.5 しか見つからない場合、その内容を No.4 にコピーし、次回以降は No.4 を利用する。

参考

あぷしあぷし

環境変数の設定方法と確認

サービス設定

/etc/systemd/system/tomcat.service

[Unit]
Description=Apache Tomcat 9
After=network.target

[Service]
User=tomcat
Group=tomcat
Type=oneshot
PIDFile=/opt/tomcat/tomcat.pid
RemainAfterExit=yes

EnvironmentFile=/etc/sysconfig/tomcat ★ 環境変数設定ファイルのパス ★
ExecStart=/opt/tomcat/bin/startup.sh
ExecStop=/opt/tomcat/bin/shutdown.sh
ExecReStart=/opt/tomcat/bin/shutdown.sh;/opt/tomcat/bin/startup.sh

[Install]
WantedBy=multi-user.target

環境変数設定ファイル

/etc/sysconfig/tomcat

CATALINA_HOME=/opt/tomcat

参考

あぷしあぷし

サーブレット

Java製のサーバーサイドWebアプリケーション。
対義語: アプレット

サーブレットコンテナ

サーブレットを動かすためのアプリケーション 。
Webの3層アーキテクチャでいう「アプリケーションサーバー」に該当する。

image

画像はhttps://atmarkit.itmedia.co.jp/fjava/javafaq/servlet/servlet02.htmlより引用

以下のような種類がある。

  • Tomcat
  • Jetty
  • WebLogic/GlassFish
  • JBoss/WildFly/Undertow
  • WebSphere/LibertyProfile

Tomcatはアプリケーションサーバーであるが、簡易的なWebサーバー機能も持っているため、ローカルで単独で動作させることができる。

SpringBootとの関係

SpringBootはサーブレットコンテナがもとから組み込まれている。
組み込みのもので以下から選択が可能。

  • Tomcat
  • Jetty
  • Undertow

参考