1. ホーム
  2. tomcat

[解決済み] サービス全体を再起動せずに、TomcatのWebアプリケーションを更新するにはどうすればよいですか?

2023-01-03 07:25:27

質問

私は初めて Tomcat . 私たちは約 5 つのアプリが動作している開発マシンを持っています。 開発マシンであっても、テスト中はクライアントによってかなり頻繁に使用されます。

そこで、1 つのクラス ファイルに 1 つの小さな変更を加える必要があるとします。 現在、Tomcat をシャットダウンし (他の 4 つのアプリに影響します)、クラス ファイルを削除するために WAR ファイル (および Web アプリ ディレクトリ) を削除し、新しい WAR ファイルを再展開し Tomcat .

もちろん、これはすべてのアプリのログインしたセッションを破壊するため、一部の人を動揺させます。

これを行うためのより良い方法はありますか? つまり、[Session] のみを再読み込みする方法はないでしょうか。 CLASS だけを再読み込みする方法はありますか?

ありがとうございます。

どのように解決するのですか?

あなたは TomcatのManagerアプリケーション ? これを使えば、Tomcatを停止させることなく、warファイルのアンデプロイ/デプロイを行うことができます。

Manager アプリケーションを使用しない場合、war ファイルを webapps ディレクトリから削除することもできます。 その後、warファイルをディレクトリにコピーして戻せば、Tomcatはwarファイルを配備します。

WindowsでTomcatを動作させている場合、以下の作業が必要になることがあります。 configure を設定する必要があるかもしれません。

ダウンタイムが絶対に許されない場合は、次のような方法があります。 Tomcat 7 の並列デプロイメント 同じコンテキストパスで複数のバージョンの Web アプリケーションを同時に配備することができます。リクエストをコンテキストのバージョンにマッチさせるために使われるルールは次のとおりです。

  • リクエストにセッション情報がない場合、最新バージョンを使用します。
  • リクエストにセッション情報がある場合、各バージョンのセッションマネージャーで一致するセッションを確認し、見つかった場合はそのバージョンを使用します。
  • リクエストにセッション情報があるが、一致するセッションが見つからない場合、最新バージョンを使用します。