MaxUploadSizeExceededException не вызывает метод обработки исключений в Spring

м с использованием Spring 3.2.0. В соответствии сэтот ответ, у меня есть тот же метод в моем аннотированном контроллере, который реализуетHandlerExceptionResolver интерфейс, такой как,

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

    Map model = new HashMap(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");
}

и конфигурация Spring включает в себя,


    
        10000
    

Когда размер файла превышает, предыдущий метод должен быть вызван, и он должен автоматически обработать исключение, но это невообще не бывает. МетодresolveException() никогда не вызывается, хотя возникает исключение. Как справиться с этим исключением? Я что-то пропустил?

Тоже самое указаноВот, Я'я не уверен, почему это не такне работает в моем случае.

Я попробовалследующий подход с@ControllerAdvice но это нетоже не работает.

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 handleConflict(RuntimeException ex, WebRequest request) {
        String bodyOfResponse = "This should be application specific";
        return handleExceptionInternal(ex, bodyOfResponse, new HttpHeaders(), HttpStatus.CONFLICT, request);
    }
}

Я также попытался поставить подробный -.Exception

@ExceptionHandler(value={Exception.class})

МетодResponseEntity() никогда не вызывается в любом случае.

В общем, я хочу обработать это исключение для каждой базы контроллера (уровень контроллера), если это возможно. Для этого один@ExceptionHandler аннотированный метод должен быть активным только для этого конкретного контроллера, а не глобально для всего приложения, поскольку в моем приложении есть только несколько веб-страниц, которые обрабатывают загрузку файлов. Когда это исключение вызвано, я просто хочу показать удобное сообщение об ошибке на текущей странице, а не перенаправлять на страницу ошибки, настроенную вweb.xml файл. Если это даже невозможно, то это исключение должно быть обработано в любом случае без каких-либо специальных требований, которые я только что высказал.

Ни один из подходов не работал для меня. Больше ничего об обработке этого исключения я не смог найти. Требуется ли дополнительная настройка где-нибудь в XML-файлах или нет?

Что я'м после получения исключения может быть видно в следующемСнимок.

Ответы на вопрос(6)

Ваш ответ на вопрос