MaxUploadSizeExceededException no invoca el método de manejo de excepciones en Spring

Estoy usando Spring 3.2.0. De acuerdo aesta respuesta, tengo el mismo método en mi controlador anotado que implementa elHandlerExceptionResolver interfaz 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");
}

y la configuración de primavera incluye,

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

Cuando el tamaño del archivo excede, se debe invocar el método anterior y se debe manejar automáticamente la excepción, pero no sucede en absoluto. El métodoresolveException() Nunca se llama aunque se produzca la excepción. ¿Cuál es la manera de manejar esta excepción? ¿Me estoy perdiendo de algo?

Lo mismo se especifica también.aquí. No estoy seguro de por qué no funciona en mi caso.

He probado elsiguiente enfoque con@ControllerAdvice pero tampoco funcionó.

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);
    }
}

También he tratado de poner lo verboso -Exception.

@ExceptionHandler(value={Exception.class})

El métodoResponseEntity() En ningún caso se invoca nunca.

En general, quiero manejar esta excepción por controlador base (nivel de controlador), si es posible. Para este@ExceptionHandler el método anotado solo debe estar activo para ese controlador en particular, no globalmente para toda la aplicación, ya que solo hay unas pocas páginas web en mi aplicación que manejan la carga de archivos. Cuando se produce esta excepción, solo quiero mostrar un mensaje de error fácil de usar en la página actual y no redirigir a la página de error configurada en elweb.xml expediente. Si esto no es siquiera factible, entonces esta excepción debe manejarse de todos modos sin ningún requisito personalizado que acabo de expresar.

Ninguno de los enfoques funcionó para mí. Nada más sobre el manejo de esta excepción que pude encontrar. ¿Requiere configuración adicional en algún lugar en archivos XML o de otra manera?

Lo que estoy obteniendo después de que se arroja la excepción puede verse en el siguienteinstantánea.

Respuestas a la pregunta(6)

Su respuesta a la pregunta