Spring 3.1.1 を使用しています。ファイルアップロード機能があり、ファイルサイズ制限を処理するために HandlerExceptionResolver を実装しました。「maxUploadSize」属性を使用して、Spring MVC xml でサイズを構成しました。私のアプリケーションは、open id で spring security を使用しています。
そのアップロードコントローラーの resolveException() で以下のコードを使用しています。RestResponse は、エラー メッセージとステータスを含む pojo です。
ModelAndView mav = new ModelAndView();
mav.setView(new MappingJacksonJsonView());
RestResponse fail_response = new RestResponse();
fail_response.setMessage("Max upload limit failure.");
fail_response.setStatus("FAIL");
mav.addObject("restResponse", fail_response);
return mav;
ログから、resolveException() が呼び出されていることがわかりますが、json 応答は残りの API クライアント/ブラウザーに表示されません。ログに例外が表示されます (最大アップロード サイズの 10485760 バイトを超えました。ネストされた例外は org.apache.commons.fileupload.FileUploadBase$SizeLimitExceededException: 要求は拒否されました。そのサイズ (30611515) が構成された最大値 (10485760) を超えているためです)。アップロードの直後ですが、アップロードは引き続き続行され、しばらくすると json エラー メッセージ (上記で入手可能) がブラウザーに表示されます。
stackoverflow やその他のポータルでこの問題を確認しましたが、表示されない理由や応答が UI に返される理由がわかりませんでした。