MaxUploadSizeExceededException não invoca o método de tratamento de exceção no Spring

Estou usando o Spring 3.2.0. De acordo comisto resposta, eu tenho o mesmo método no meu controlador anotado que implementa oHandlerExceptionResolver interface como,

public ModelAndView resolveException(HttpServletRequest request, HttpServletResponse response, Object handler, Exception exception) {

    Map<String, Object> model = new HashMap<String, Object>(0);

    if (exception instanceof MaxUploadSizeExceededException) {
        model.put("msg", exception.toString());
        model.put("status", "-1");
    } else {
        model.put("msg", "Unexpected error : " + exception.toString());
        model.put("status", "-1");
    }

    return new ModelAndView("admin_side/ProductImage");
}

e a configuração Spring inclui,

<bean id="filterMultipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
    <property name="maxUploadSize">
        <value>10000</value>
    </property>
</bean>

Quando o tamanho do arquivo excede, o método anterior deve ser invocado e deve manipular automaticamente a exceção, mas isso não acontece de forma alguma. O métodoresolveException() nunca é chamado mesmo que a exceção ocorra. Qual é a maneira de lidar com essa exceção? Estou esquecendo de algo?

A mesma coisa também é especificadaAqui. Não sei por que isso não funciona no meu caso.

Eu tentei oabordagem seguinte com@ControllerAdvice mas também não funcionou.

package exceptionhandler;

import org.springframework.http.HttpHeaders;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.ControllerAdvice;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.context.request.WebRequest;
import org.springframework.web.multipart.MaxUploadSizeExceededException;
import org.springframework.web.servlet.mvc.method.annotation.ResponseEntityExceptionHandler;

@ControllerAdvice
public final class RestResponseEntityExceptionHandler extends ResponseEntityExceptionHandler {

    @ExceptionHandler(value = {MaxUploadSizeExceededException.class})
    protected ResponseEntity<Object> handleConflict(RuntimeException ex, WebRequest request) {
        String bodyOfResponse = "This should be application specific";
        return handleExceptionInternal(ex, bodyOfResponse, new HttpHeaders(), HttpStatus.CONFLICT, request);
    }
}

Eu também tentei colocar o verbose -Exception.

@ExceptionHandler(value={Exception.class})

O métodoResponseEntity() nunca é invocado em qualquer caso.

Em geral, eu quero lidar com essa exceção por base de controlador (nível de controlador), se possível. Para isso, um@ExceptionHandler O método anotado só deve estar ativo para esse controlador específico, não globalmente para o aplicativo inteiro, pois há apenas algumas páginas da Web no meu aplicativo que manipulam o upload de arquivos. Quando esta exceção é causada, eu só quero mostrar uma mensagem de erro de fácil utilização na página atual e não redirecionar para a página de erro configurada noweb.xml Arquivo. Se isso não for viável, essa exceção deve ser tratada de qualquer maneira, sem quaisquer requisitos personalizados que acabei de expressar.

Nenhuma das abordagens funcionou para mim. Nada mais sobre como lidar com essa exceção que pude encontrar. Requer configuração adicional em algum lugar nos arquivos XML ou de outra forma?

O que eu estou recebendo depois que a exceção é lançada pode ser visível no seguintesnap shot.

questionAnswers(6)

yourAnswerToTheQuestion