コントローラに@RequestMapping(produces = ...)がある場合にのみ、SpringのHandlerInterceptorAdapterが2回呼び出されるのはなぜですか?

ダンブロス

長い間アプリをデバッグした後、私には意味のない何かに気づきました。以下に例示するように注釈が付けられたコントローラーを呼び出すたびに、インターセプターが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]

編集
0

コメントを追加

0

関連記事

Related 関連記事

ホットタグ

アーカイブ