Serviceタグ

  • Tomcat Version:8.5.23

Serviceタグは、server.xmlファイルのトップレベル要素です。
serverタグ配下に1つ以上のConnectorタグで宣言したHttp通信などの定義及び単一のEngine要素を1つのグループとして管理するタグです。
Serviceタグを複数定義する場合には、同列の階層として定義する事やネストさせてサブグループ化もできます。

  • Serviceタグ定義数:最低1つ~複数

表記説明:必須可否欄 〇:必須 -:任意

属性 必須可否 未指定時の
デフォルト値
初期設定値 説明
className - org.apache.catalina.core.
StandardService
未指定 使用する実装のJavaクラス名。このクラスは、org.apache.catalina.Serviceインタフェースを実装する必要があります。
クラス名が指定されていない場合は、標準実装(StandardService)が使用されます。
name ※.NULL Catalina このサービスの表示名。標準のCatalinaコンポーネントを使用する場合、ログメッセージに含まれます。
特定のサーバーに関連付けられている各サービスの名前は一意でなければなりません。

Serviceタグの子要素

  1. Connector HTTP通信などのサービスを構成する通信(TCP/IP)を1つ以上定義します。
  2. Engine バーチャルホストを定義するHost要素やログ出力などを管理するEngine要素を1つ定義します。

1つ以上のServiceタグ定義への考察

Serviceタグは複数定義したり、階層化して複数のバーチャルホスト、それに対するWebアプリケーションをグループ化できます。
例えばIT生涯学習Techがgakumon.techとgakumon.lifeという2つのサービスを1つのTomcatで管理する場合には、以下の図のようになります。

Serviceを2つの設定概要図
  • Serviceタグのname属性をファイル内で一意にします。
  • Connectorタグのport属性を一意にします。
  • Engineタグのname属性を他のEngineタグのname属性と重複しないようにします。

Serviceタグのデフォルトが多い背景

2017年時点で多くのserver.xmlの設定では、デフォルトの"Catalina"サービス1つだけ定義されるケースが多いです。
背景には、サーバー筐体の安価化及び高性能化やサーバーの仮想技術の進化によりTomcatサーバーを多く立てられるようになったからです。

ServiceのVM化による変化図