私は Wicket を初めて使用し、クリーンアップ、DB の更新、回復などを実行するためのある種のメンテナンス管理ページを使用して、内部から Web アプリケーションを維持したいと考えています。データバインディングにHibernateなどを使用する予定なので、これらのアクションを実行できるすべての人にTomcatマネージャーのパスワードを付随させることなく、アプリケーション自体の内部から完全な再起動をトリガーしたいと思います。
私の知る限り、管理者パスワードなしで Java Web アプリケーションを実際に再起動する簡単な方法はないようです。ただし、管理パネルにそのような再起動機能を持つ多くの Java Web アプリケーションがあるため、特定のサーブレット コンテナーまたは一部の Web フレームワークで再起動をトリガーできるはずです。彼らはどういうわけかトリックをしなければなりませんか?(または、実際には最初から再起動するのではなく、クリーンな再起動なしで再初期化するだけでしょうか?)
Wicket または Tomcat がアプリケーションからのシャットダウンと再起動でトリガーできることについては何も見つかりませんでしたが、Wicket にはそれを実行できる内部メソッドがいくつかありますか? (パブリックにアクセスできますが、JavaDoc は内部使用のみであるため、アクセスしないことをお勧めします)
セキュリティの観点からは、アプリケーションが独自のコードからそのような再起動を要求できない理由がよくわかりません。
これを行うことができますか? はいの場合、アプリケーションを再起動するためにアプリケーションで何をする必要がありますか?
編集:私の質問をより正確にするために: ユーザーもアプリも、Tomcat マネージャー インターフェイスへのアクセスに使用できるパスワードを持ってはなりません。私は、サーブレットコンテナをトリガーしてその特定のアプリケーションを再起動するために、認証を必要とせずに呼び出すメソッドまたは設定するフラグを考えていました。私の考えでは、アプリケーションはサーブレット コンテナーで実行されているため、何らかの方法でシャットダウンして再起動する必要があります。一般的に Java アプリ サーバーでそれが不可能な場合は、基盤となるフレームワーク (この場合は Wicket) を呼び出して実行中のすべてのスレッドを終了し、可能な限りクリーンアップして再起動することにより、アプリケーション レベルでそれを行う方法があるかもしれません。フレームワークを使用するアプリケーション。アプリスタックの「ソフトリブート」のようなもの。