Heroku は SIGTERM を使用して、プロセスが正常にシャットダウンできるようにします。ただし、Tomcat プロセスは SIGTERM に応答せず、ServletContextListener で contextDestroyed を呼び出すことはありません。
Heroku の再起動を使用して、または Heroku がアプリのスラッグ コンパイルを実行するときに、Tomcat に contextDestroyed を呼び出させるにはどうすればよいですか。
あなたが正しい。シャットダウン フックは、Tomcat の正常なシャットダウンをトリガーするように登録されていなかったため、コンテキストはシャットダウン ライフサイクル イベントを循環していませんでした。webapp-runner の最新バージョンはこれを修正します: https://github.com/jsimone/webapp-runner/issues/22