質問: tomcatにおけるコンテキストパスについて質問させてください。 tomcatをインストールすると、デフォルトで以下のwebアプリケーションがデプロイされているようです。 tomcatインストールディレクトリ/webapps/ ├── docs ├── examples ├── host-manager ├── manager └── ROOT この中でコンテキストパスが"/"でhttpアクセスできるのは(http://IPアドレス:8080/)、ROOTアプリケーションであり、例えば、examplesアプリケーションへは、コンテキストパス"/expamples"(http://IPアドレス:8080/examples/)でアクセスできるようです。これらのコンテキストパスは、どこで設定されているものなのでしょうか。server.xmlには、"Context"タグは存在しないようですし、"tomcatインストールディレクトリ/conf/Catalina"は空でした。 どなたかご存知の方、ご教授頂けないでしょうか。何か勘違いしている点があれば、合わせてご指摘頂けると嬉しいです。 ▪️OS Red Hat Enterprise Linux Server release 7.3 ▪️Tomcatバージョン 8.5
回答: それらのコンテキストパスは、 Tomcat 自身によって起動時に自動的に設定されていると思います。 以下のドキュメントをご覧頂くと、 `deployOnStartup` 設定が有効な場合、 `webapps` ディレクトリ以下に展開されたウェブアプリケーションは明示的な Context descriptor を持たなくても、 Tomcat 自身によって自動的にデフォルトの Context が設定されデプロイされることが分かります。 この動作を変えたければ、例えば `deployOnStartup` や `autoDeploy` の設定を無効にしたり、該当のウェブアプリケーションを `webapps` ディレクトリの外に出してやった上で、 `conf/Catalina` に明示的に Context descriptor ファイルを設置しておけば良いのではないでしょうか。 Deployment on Tomcat startup また、自動的に設定されるコンテキストパスはウェブアプリケーションのディレクトリ名に基づいていますが、そのルールは以下のドキュメントに記載されています。単にコンテキストパスを変えたいだけであれば、こちらが参考になるかもしれません。 The Context Container - Naming