Как устранить объект ошибки Spring MVC?

Иногда ваша программа может выдать ошибку с указанием конкретного объекта ошибки Spring MVC. Причин этой проблемы может быть несколько.

Этому программному обеспечению доверяют более 30 миллионов пользователей по всему миру. Попробуйте бесплатно сегодня.

Spring MVC предлагает множество взаимодополняющих подходов для различных манипуляций, но, к сожалению, когда я преподаю Spring MVC, я часто нахожу своих студентов не только неудобными, но и путающими.

Сегодня я покажу вам ряд доступных вариантов. Наша цель — по возможности избегать явной обработки исключений в этом контроллере метода. Часто такой подход представляет собой сквозную проблему, которую буквально лучше всего решать отдельно в коде привычки.

Для демонстрационной компьютерной программы, показывающей каждый из следующих элементов, см.
http://github.com/paulc4/mvc-exceptions. Дополнительные сведения см. в образце приложения ниже.

ПРИМЕЧАНИЕ. Демонстрационные программы были значительно переработаны и изменены (апрель 2018 г.). Время использовать Spring Boot 2.0.1 также (надеюсь) проще в использовании и понимании. Возможно, я даже починил несколько сломанных штифтов (спасибо за отзыв, извините, приятель, так как другие) да, это заняло всего времени).

Запустить

Spring Boot дает вам время для установки проекта Spring как любого вида установки с минимальной конфигурацией, и компонент, скорее всего, будет установлен, созданный вами, если вашему приложению значительно меньше нескольких лет.

Spring MVC по умолчанию не предоставляет фан-страницу ошибок по умолчанию (резервную). В последнее время наиболее распространенным способом установки самой важной страницы ошибок по умолчанию всегда был Spring SimpleMappingExceptionResolver (на самом деле, начиная с V1). Мы обсудим это позже.

При входе в Spring запустите объект, чтобы попытаться найти сопоставление с именем /error. При встрече URL-адрес, оканчивающийся на /error, действительно сопоставляется с логическим значением простоя и отображается в имени: тот же error. В демо-приложении вы сможете еще раз осмыслить его в библейские времена на тему шаблона Thymeleaf error.html. (Если используется хороший JSP, он, скорее всего, будет отображаться в error.jsp в зависимости от настройки InternalResourceViewResolver человека). Конкретное сопоставление, установленное для того, что вы или Spring Boot настроили через ViewResolver (если он у вас есть).

Если вы не можете найти преобразователь Maps View для /error, Spring Boot создает собственную резервную учетную запись ошибки — так называемую «страницу ошибок Whitelabel» (минимум страница). информацию о статусе и несколько сведений об ошибках, таких как потрясающее совпадение неперехваченных исключений). Последний образец программного обеспечения для компьютера, если вы сейчас переименуете основной шаблон error.html, например, в error2. Затем перезапустите html, вы увидите, что он точно используется.

Если все отправляют RESTful-запрос (в HTTP-запросе указан не-HTML-ответ, который вам нужен), Spring Boot возвращает JSON-представление точно такой же информации об ошибке со вставленным веб-сайтом с ошибкой «белой метки».

$> curl -H "Принять: http://localhost:8080/no-such-page"timestamp": "2018-04-11T05:56:03 application/json".845+0000","статус":404,"ошибка":"Не найдено","сообщение":"Нет доступных сообщений"," путь":"/нет такой-страницы"

Spring Boot может даже настроить каждую страницу ошибок по умолчанию, доступную для посадки горшков, которая соответствует информации
внутри web.xml (хотя реализовано тоже ассорти ). Исключения, созданные за пределами среды Spring MVC, например практически из любого нового фильтра сервлетов, всегда указываются на резервной странице ошибок Spring Boot. Образец сервиса также содержит иллюстрацию.

См. окончание статьи для более подробного ознакомления с большинством обработчиков ошибок Spring Boot.

spring mvc error object

В остальной части этой статьи указывается, используете ли вы Spring Boot или нет.

Нетерпеливые разработчики REST могут пропустить все соответствующие разделы о пользовательских ответах, которые могут привести к ошибкам REST. Тем не менее, вы должны прочитать всю статью на ветер, так как большая ее часть относится к любому широкополосному приложению, REST и прочему.

Использование кодов состояния HTTP

Зачем использовать пружинную обувь для MVC?

С помощью Spring Boot можно настроить проект Spring с минимальной конфигурацией, и вы, вероятно, попробуете его, если вашему приложению уже несколько лет. Spring MVC по умолчанию не предоставляет расширенную (резервную) страницу ошибки.

Обычно возникает множество необработанных исключений, когда обработка этого веб-запроса заставляет сервер возвращать ответ HTTP 500. Тем не менее, любое исключение, которое вы пишете самостоятельно, может быть легко аннотировано с помощью @ResponseStatus< /code> (что фактически действует против кодов состояния HTTP, объясненных в процессе спецификации HTTP). Если мощное закомментированное исключение вызывается в определенном методе контроллера и не может быть обработано в другом месте, наиболее важное может быть автоматически возвращено. Входящий ответ HTTP, который поможет указанному коду состояния.

spring объект ошибки mvc

 @ResponseStatus(value=HttpStatus.NOT_FOUND, Reason="Нет типа команды") // Public 404 учебный курс OrderNotFoundException расширяет RuntimeException     // ... 

 @RequestMapping(value="/orders/id", method=GET) populace String showOrder(@PathVariable("id") длинный внутренний диаметр модели, модель)     Заказ Заказ = orderRepository.findOrderById(id);     if(order==null) генерировать новое исключение OrderNotFoundException(id);     model.addAttribute(Заказ);     Возврат «Детали заказа»; 

Обычный ответ HTTP 404 должен быть возвращен независимо от того, содержит ли URL-адрес, обработанный этим методом, какой-либо хороший неизвестный идентификатор команды.

Обработка исключений на основе контроллера

Использование @ExceptionHandler

Необходимо обязательно добавить дополнительные методы (@ExceptionHandler) контроллера для обработки специальных исключений из обработчика триггерных запросов (@RequestMapping) того же контроллера. Эти программы могут:

<ол>

  • Обрабатывать исключения без одной конкретной аннотации @ResponseStatus (обычно отдельные исключения, которые не писала ваша семья)
  • Перенаправить определенного пользователя — отдельный просмотр ошибок.
  • Создать легко настраиваемый ответ на ошибку
  • Больше не страдайте от ошибок ПК.

    Не секрет, что компьютеры со временем замедляются. Restoro исправит распространенные компьютерные ошибки, защитит вас от потери файлов, вредоносных программ и аппаратных сбоев. Это программное обеспечение может легко и быстро распознавать любые проблемы и проблемы, связанные с Windows. Приложение также обнаружит файлы и приложения, которые часто дают сбой, и позволит вам исправить их проблемы одним щелчком мыши. Ваш компьютер будет чувствовать себя быстрее, чем когда-либо прежде! Щелкните здесь, чтобы бесплатно загрузить последнюю версию нашего программного обеспечения:

  • 1. Загрузите и установите программное обеспечение Reimage.
  • 2. Запустите программу и выберите язык.
  • 3. Следуйте инструкциям на экране, чтобы начать сканирование компьютера.

  • @Контроллероткрытый класс ExceptionHandlingController {  // Методы @RequestHandler  ...   // Методы управления исключениями   // Преобразование предопределенного исключения из этого правила в политику статуса HTTP @ResponseStatus (значение = HttpStatus.CONFLICT,                  Причина равна "Нарушение целостности данных") // 409 @ExceptionHandler(DataIntegrityViolationException.класс)  публичный недействительный конфликт ()    // Не привязан к      // Укажите имя конкретного основного представления, используемого для отображения их ошибки:  @ExceptionHandler(SQLException.класс,DataAccessException.класс)  общедоступная строка DatabaseError()    // Вам нечего делать. Возвращает идентификатор всех логических представлений ошибки, переданной во всемирную паутину.    // появляемся в распознавателях слишком много раз в обычном режиме.    // Обратите внимание, что исключение действительно может быть НЕдоступно для этой проверки (оно не будет сгенерировано    // к модели), тем не менее, см. «Расширение ExceptionHandlerExceptionResolver»    // ниже.    возвращает "ошибку базы данных";   // Полное ограничение — настройте бизнес-модель и назовите представление самостоятельно. Где  // Ra См. подклассы, включая ExceptionHandlerExceptionResolver (см. ниже).  @ExceptionHandler(Исключение.класс)  общий ModelAndView handleError (HttpServletRequest req, Exception ex) {    logger.error("Запрос: ins + req.getRequestURL() + ins увеличить ширину в дюймах Ex); + ModelAndView mav = кто-то другой ModelAndView();    mav.addObject("Исключение", ex);   Mav .addObject("url", req.getRequestURL());    myv.setViewName("Ошибка");

    Почините свой компьютер простым способом. Reimage - лучший инструмент для восстановления Windows!

    г.

    About the Author

    You may also like these