STS からは正常に動作する Spring Boot Web アプリがありますが、WAR ファイルから Tomcat で実行すると異なる動作を示します。
私は Thymeleaf を使用してすべての Web ページを処理していますが、jQuery を使用して非同期呼び出しを送信し、ユーザー エクスペリエンスをより動的にするページがいくつかあります。
とにかく、私はこの方法で処理するをスローする可能性のあるサービスメソッドを呼び出すコントローラーメソッドを持っていますRuntimeException
:
@ExceptionHandler(MyRuntimeException.class)
@ResponseStatus(HttpStatus.BAD_REQUEST)
public @ResponseBody String handleMyRuntimeException(MyRuntimeException exception) {
return "Oops an error happened : " + exception.getMessage();
}
JS では、上記の応答本文を使用して画面にメッセージを表示します。
STS でアプリを実行している場合は問題なく動作しますErrorPageFilter
が、Tomcat で展開するように切り替えると、呼び出されdoFilter()
て実行されます。
if (status >= 400) {
handleErrorStatus(request, response, status, wrapped.getMessage());
response.flushBuffer();
}
handleErrorStatus()
ステータスと関連メッセージでエラーが発生しますが、応答は返されません。
これを解決する方法がわかりませんでした。誰かが助けてくれれば本当に感謝しています。
ありがとう!