ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子1=サッカー, 子2=野球
子ページを親ページとして更に子ページを作成することも可能です。
例: 親=サッカー, 子=サッカーのルール
親ページはいつでも変更することが可能なのでとりあえず作ってみましょう!
| この記事の要点 |
|
AutoDeploy とは
Tomcat の autoDeploy は $CATALINA_BASE/webapps/ ディレクトリを定期的に監視し、新規 WAR ファイルやディレクトリの追加・更新・削除を検知して自動で展開・反映する機能です。開発時は便利ですが、本番では計画外の再起動を招くため通常無効化します。
conf/server.xml の設定箇所
各属性の意味
| 属性 | デフォルト | 意味 |
|---|---|---|
appBase | webapps | WAR / コンテキストの配置ディレクトリ |
autoDeploy | true | 稼働中の追加・更新を監視して自動展開 |
deployOnStartup | true | Tomcat 起動時に appBase 配下を一括展開 |
unpackWARs | true | WAR を解凍してディレクトリで実行(false なら WAR のまま) |
deployIgnore | なし | 無視するファイル名の正規表現 |
copyXML | false | WAR 内 META-INF/context.xml を conf/Catalina/localhost/ にコピー |
監視間隔
autoDeploy の監視間隔は 階層の backgroundProcessorDelay 属性(秒)で決まります。デフォルト 10 秒:
本番で監視は不要なら -1 で停止可能。ただし autoDeploy=false の方が一般的。
WAR 配置からアクセスまで
# 開発環境 (autoDeploy=true) の場合
cp myapp.war $CATALINA_HOME/webapps/
# 10 秒後にログ確認
tail -f $CATALINA_HOME/logs/catalina.out
# INFO: Deploying web application archive [/opt/tomcat/webapps/myapp.war]
# INFO: Deployment of web application archive ... has finished in 1,234 ms
# 展開先
ls -la $CATALINA_HOME/webapps/
# drwxr-xr-x myapp/ ← unpackWARs=true で自動展開
# -rw-r--r-- myapp.war
# アクセス
curl http://localhost:8080/myapp/
本番環境の推奨設定
本番では autoDeploy / deployOnStartup を無効化し、明示的にデプロイする運用が安全です:
デプロイ手順:
# 1. Tomcat 停止
sudo systemctl stop tomcat
# または
$CATALINA_HOME/bin/shutdown.sh
# 2. 旧アプリ削除
rm -rf $CATALINA_HOME/webapps/myapp/
rm $CATALINA_HOME/webapps/myapp.war
# 3. 新 WAR 配置
cp /tmp/myapp-new.war $CATALINA_HOME/webapps/myapp.war
chown tomcat:tomcat $CATALINA_HOME/webapps/myapp.war
# 4. work ディレクトリのクリア(古い JSP コンパイル結果)
rm -rf $CATALINA_HOME/work/Catalina/localhost/myapp/
# 5. 起動
sudo systemctl start tomcat
# 6. 確認
tail -f $CATALINA_HOME/logs/catalina.out
curl -I http://localhost:8080/myapp/
Manager Webapp 経由のデプロイ
無停止デプロイしたい場合は Tomcat Manager の HTTP API を使えます:
# conf/tomcat-users.xml に manager-script ロールを設定
#
# 既存アプリの停止 → アンデプロイ → デプロイ
curl -u deploy:xxx \
"http://localhost:8080/manager/text/undeploy?path=/myapp"
curl -u deploy:xxx \
--upload-file myapp.war \
"http://localhost:8080/manager/text/deploy?path=/myapp&update=true"
autoDeploy のリスク
| リスク | シナリオ | 対策 |
|---|---|---|
| 中途展開 | 大きな WAR の cp 途中で Tomcat が展開開始 → クラスファイル欠落 | cp app.war.tmp → mv app.war.tmp app.war |
| 誤上書き | 運用ミスで間違った WAR を webapps へ → 即時反映 | 本番は autoDeploy=false |
| セッション喪失 | 再展開で webapp 再起動 → セッション消失 | セッション永続化、ローリングデプロイ |
| ログ肥大 | 10 秒ごとの監視ログ | org.apache.catalina.startup.HostConfig の log level を上げる |
FAQ
Q: WAR を置いても展開されない
A: ① Tomcat ユーザにファイル読取権限があるか、② autoDeploy=true か、③ catalina.out に FileNotFoundException 等のエラーが出ていないか確認。
Q: ディレクトリ展開を残したくない
A: unpackWARs="false" にすれば WAR のまま実行される。ただし JSP コンパイル時に work/ へキャッシュされる点は変わらず。
Q: コンテキストパスを変えたい
A: WAR 名を変える(myapp##v2.war → /myapp、パラレルデプロイ)、または conf/Catalina/localhost/myapp.xml を作成。
ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子1=サッカー, 子2=野球
子ページを親ページとして更に子ページを作成することも可能です。
例: 親=サッカー, 子=サッカーのルール
親ページはいつでも変更することが可能なのでとりあえず作ってみましょう!
子ページはありません
人気ページ
- 1 Eclipseで「サーバーに追加または除去できるリソースがありません。」の原因と対処法
- 2 tomcat の起動 / 停止ログと catalina.log・catalina.out の違い
- 3 JavaScript base URL 取得方法|window.location.origin と SSR/Node.js 対応
- 4 YouTube Data API v3 エラー一覧|403/400/404 の主要原因と切り分け
- 5 Spring Frameworkのアノテーション一覧
- 6 Laravel エラー一覧|500/Blade/DB 接続/ルーティングの代表エラー
- 7 3Dグラフィックスとは|モデリング/レンダリング/主要ソフトウェア (Blender / Maya)
- 8 【Spring】@Valueアノテーションとは
- 9 CATALINA_HOME の確認方法 (Linux / Mac)
- 10 【Spring】@Autowiredアノテーションとは
最近更新/作成されたページ
- Laravel キャッシュクリア完全ガイド(cache:clear / config:clear / 2026-05-18 07:42:07
- プロジェクトの作成と削除 2026-05-18 07:42:07
- インストール直後にNetbeansが反応しない 2026-05-18 07:42:07
- 動画やチャンネルの検索 2026-05-18 07:42:07
- APIキー取得方法 2026-05-18 07:42:07
- チャンネル情報の取得 2026-05-18 07:42:07
- API 入門 — Web API(REST / GraphQL / gRPC / 2026-05-18 07:42:07
- インストール(eclipseプラグイン) 2026-05-18 07:42:07
- Laravel「Dotenv values containing spaces must be surrounded 2026-05-18 07:42:07
- エラー一覧 2026-05-18 07:42:07
- curl: (51) SSL: certificate subject name '~' does not match 2026-05-18 07:42:07
- インストール方法(Windows版) 2026-05-18 07:42:07
- JSONから配列に変換 2026-05-18 07:42:07
- 処理を一定時間待つ 2026-05-18 07:42:07
- A non well formed numeric value encountered 2026-05-18 07:42:07
コメントを削除してもよろしいでしょうか?