長い間アプリをデバッグした後、私には意味のない何かに気づきました。以下に例示するように注釈が付けられたコントローラーを呼び出すたびに、インターセプターが2回実行されます。
@RequestMapping(method = RequestMethod.GET, produces = MediaType.IMAGE_JPEG_VALUE)
public ResponseEntity<byte[]> getMedia(String url) throws IOException {
...
}
テストの目的で、「プロデュース」部分を削除しました。同じインターセプターは1回だけ呼び出されます。
なぜこれが起こっているのか誰かが私に教えてもらえますか?2回呼び出されているという事実は、エラーを生成しています。2回目の呼び出しでは、すべてのリクエストヘッダーが空であり、検証が失敗するためです。
私のインターセプターは、次のような単なる実装です。
public class AuthenticatorInterceptor extends HandlerInterceptorAdapter {
@Override
public boolean preHandle(HttpServletRequest request,
HttpServletResponse response, Object handler) throws Exception {
//validations
return super.preHandle(request, response, handler);
}
クラスに、異なるmimetypeを生成する@RequestMappingアノテーションもあるかどうかを確認します。両方の「生成」宣言がインターセプターが2回呼び出される理由である可能性があるため、これが問題の原因である可能性があります。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加