私はAWS Elastic Beanstalkでに展開し、次のコードしているに展開した後、いくつかの時間を働いて停止しました。しかし、しばらくして(約1時間)、それはもはやhandleNotFound
によって捕らえられず、代わりに500を返すようになる。私はそれがAWSのEB問題か春の問題かはわかりません。誰も前に同様の問題に直面していますか?ありがとう!春@ControllerAdviseは、AWS EB
更新:
さらに調査した後、私はそれが時間ごとにAWS EBログローテーションの後に起こった疑い。
404に寄与して午前10時から始まる最初のログ:
2017-10-23_10:03:14.957 [qtp739973450-13] DEBUG o.s.w.s.m.m.a.ExceptionHandlerExceptionResolver.resolveException - Resolving exception from handler ...
2017-10-23_10:03:14.958 [qtp739973450-13] DEBUG o.s.w.s.m.m.a.ExceptionHandlerExceptionResolver.doResolveHandlerMethodException - Invoking @ExceptionHandler method: ...
500に寄与して午前11時から始まる次のログを:
2017-10-23_11:45:38.990 [qtp739973450-14] DEBUG o.s.w.s.m.m.a.ExceptionHandlerExceptionResolver.resolveException - Resolving exception from handler ...
2017-10-23_11:45:38.990 [qtp739973450-14] DEBUG o.s.w.s.m.a.ResponseStatusExceptionResolver.resolveException - Resolving exception from handler ...
2017-10-23_11:45:38.991 [qtp739973450-14] DEBUG o.s.w.s.m.s.DefaultHandlerExceptionResolver.resolveException - Resolving exception from handler ...
秒1はしなかったように見えます代わりに@ExceptionHandler
メソッドを見つけて、デフォルトを代わりに使用しました。
更新:
今日私は別の奇妙な動作をしました。別の方法は、以下のように409応答を返す同じクラスにあります:
@ExceptionHandler(value = DataExistsException.class)
public ResponseEntity<RestError> handleDataExists(HttpServletRequest req, DataExistsException ex) {
RestError restError = ...
return new ResponseEntity<>(restError, HttpStatus.CONFLICT);
}
展開後しばらくは、この1は500の代わりに409を(春はこのExceptionHandler
を見つけることができません)与えることを開始します。同時に、handleNotFound
はまだ404を正しく返しています...
ログを提供することはできますか? – Leffchik
@Leffchikスタックトレースは '@ ControllerAdvice'によってもはや捕らえられていないので、' NotFoundException'からのものです。何かが404から500への変更を引き起こしたかどうかを探そうとしていますが、これまで関連するログはありません...デバッグにはどの方向に進むべきか、私に教えてください。ありがとう! –
Springログ(org.springframework)のログレベルをデバッグレベルに変更し、何が起きているのかを確認します。 –