このページでは、Tomcatサーバーの起動方法について説明します。Tomcatを起動するには、いくつかの異なる方法があります。
- コマンドラインから。
- Javaプログラムから組み込みサーバーとして。
- Windowsサービスとして自動的に。
Tomcatの起動プロセスを文書化するために、一連のUML図が作成されました。
図1は、Tomcatがどのように起動し、リクエストを処理し、そして停止するかについての概要を示しています。クラスローダーが初期化されると、TomcatはDigesterを使用してserver.xmlを解析し、Digesterはserver.xmlで定義されたオブジェクトを作成し、server.xmlで定義されたプロパティ値を使用してそれらを構成し、Serverを開始します。メインのJavaスレッドは、シャットダウン信号を待つためにawait()メソッドで待機します。シャットダウン信号が受信されると、Serverオブジェクトは停止され、破棄されます。その後、JVMが終了します。
図2は、Tomcatが前のステップでDigesterによって作成されたオブジェクトをどのように初期化し、追加のキーオブジェクトがいつ作成されるかを示しています。Serverは通常1つしかありませんが、複数のServiceを持つことができます。各Serviceは複数のConnectorを持つことができます。Connectorインスタンスは、単一のProtocolインスタンスと単一のCoyoteAdapterインスタンスに関連付けられています。
図3は、Tomcatが前のステップで初期化されたDigesterによって作成されたオブジェクトをどのように開始するかを示しています。この図は、ライフサイクルイベントがいつ発生するかについても示しています。Engine(および他のContainer)の開始には、さらに詳細があり、それは次の図に示されています。
図4は、Container(Engine、Host、Context、Wrapper)が、サポートするCluster、Realm、Valveと共にどのように開始するかを示しています。
図5は、他のContainerよりもかなり複雑なContext要素の起動プロセスを示しています。
図6は、HostConfigコンポーネントがHostによってトリガーされるライフサイクルイベントにどのように応答して、WebアプリケーションをHostにデプロイするかを示しています。
図7は、ContextConfigコンポーネントがContextによってトリガーされるライフサイクルイベントにどのように応答して、グローバルおよびアプリケーション提供の構成ファイルを解析し、マージされたweb.xmlファイルを作成するかを示しています。このファイルは、他の設定と共にWebアプリケーションを構成するために使用されます。
起動プロセスは、独自のLifecycleListenersを実装し、それらをserver.xml構成ファイルに登録することで、さまざまな方法でカスタマイズできます。