Перейти к содержимому

Whitelabel error page что это за ошибка

  • автор:

Проблемы с простым проектом с Spring Framework

Пытаюсь написать приложение по https://www.toptal.com/spring/beginners-guide-to-mvc-with-spring-framework Запускается успешно, но на localhost пишет:

Whitelabel Error Page This application has no explicit mapping for /error, so you are seeing this as a fallback.

Как исправить ее в данном проекте? В HTML в строке по типу
выделяется как ошибка. Почему? К
Отслеживать
задан 4 окт 2016 в 18:52
23 1 1 золотой знак 1 1 серебряный знак 5 5 бронзовых знаков

Недостаточно информации, чтобы помочь вам. Есть ли что-нибудь в консоли? Приведите кусок кода из контроллера из вью.

4 окт 2016 в 19:14
Дополнил. В консоли вроде ошибок нет. у каждого сообщения пометка INFO.
4 окт 2016 в 19:34

определён ли namespace для th? (xmlns:th=»thymeleaf.org») Опять же — подключен ли thymeleaf корректно?

4 окт 2016 в 21:02
Как определить корректность подключения thymeleaf?
4 окт 2016 в 21:39

Проверьте, что возвращает studentRepository.findAll() . Попробуйте запустить в режиме отладки (добавьте debug: false в application.properties ), чтобы увидеть больше сообщений в логе. Ваш проект где-нибудь доступен (в смысле ишодный код)?

5 окт 2016 в 10:29

4 ответа 4

Сортировка: Сброс на вариант по умолчанию

При работе Spring Boot + Freemarker если появляется страница:

Whitelabel Error Page
This application has no explicit mapping for /error, so you are seeing this as a fallback.

В версии spring-boot-starter-parent 2.2.1.RELEASE не работает freemarker :

  1. переименуйте файлы Freemarker c .ftl на .ftlh
  2. Добавьте в application.properties : spring.freemarker.expose-request-attributes=true
    spring.freemarker.suffix= .ftl

Отслеживать
2,738 2 2 золотых знака 10 10 серебряных знаков 16 16 бронзовых знаков
ответ дан 26 ноя 2019 в 19:37
31 2 2 бронзовых знака

Проблема #1: на / ничего не замаплено, поэтому при открытии сайта вы видите подобную ошибку.

Проблема #2: если обратиться по адресу /students , то появляется еще одна ошибка, но уже другая: Exception evaluating SpringEL expression: «student.forename + ‘ ‘ + student.surame» (students:16) . Если очень внимательно посмотреть, то уже ясно в чем дело, но на всякий случай можно посмотреть в консоль на исключение: org.springframework.expression.spel.SpelEvaluationException: EL1008E:(pos 33): Property or field ‘surame’ cannot be found on object of type ‘wenti.entity.Student’ — maybe not public? Причина в банальной опечатке — вы обращаетесь к полю surame , вместо surname .

Отслеживать
ответ дан 5 окт 2016 в 18:26
Slava Semushin Slava Semushin
2,202 15 15 серебряных знаков 14 14 бронзовых знаков

В дополнение к ответу о том, что:

При работе Spring Boot + Freemarker если появляется страница:

Whitelabel Error Page
This application has no explicit mapping for error, so you are seeing this as a fallback.

У меня версия spring-boot-starter-parent 2.5.3 чтобы работал freemarker сделал следующее:

Добавьте в ваш файл application.properties:

spring.freemarker.expose-request-attributes=true spring.freemarker.cache=false spring.freemarker.template-loader-path=file:src/main/resources/templates/ spring.freemarker.suffix: .ftl 

Spring Boot: настройка страницы ошибок Whitelabel

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

2. Отключение страницы ошибок Whitelabel

Во-первых, давайте посмотрим, как мы можем полностью отключить страницу ошибки белой метки, установив для свойства server.error.whitelabel.enabled значение false:

server.error.whitelabel.enabled=false 

Добавление этой записи в файл application.properties отключит страницу ошибки и покажет краткую страницу, которая исходит из базового контейнера приложения, например, Tomcat.

Мы можем добиться того же результата, исключив bean- компонент ErrorMvcAutoConfiguration . Мы можем сделать это, либо добавив эту запись в файл свойств:

spring.autoconfigure.exclude=org.springframework.boot.autoconfigure.web.ErrorMvcAutoConfiguration #for Spring Boot 2.0 #spring.autoconfigure.exclude=org.springframework.boot.autoconfigure.web.servlet.error.ErrorMvcAutoConfiguration 

Или добавив эту аннотацию в основной класс:

 @EnableAutoConfiguration(exclude = ErrorMvcAutoConfiguration.class>) 

Все упомянутые выше методы отключат страницу ошибки белой метки. Это оставляет нас с вопросом о том, кто же на самом деле обрабатывает ошибку?

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

3. Отображение пользовательских страниц ошибок

Сначала нам нужно создать пользовательскую страницу ошибок HTML.

Мы сохраним файл как error.html , так как мы используем механизм шаблонов Thymeleaf :

 DOCTYPE html>   html>   body>   h1>Something went wrong! h1>   h2>Our Engineers are on ith2>   a href="/">Go Homea>   body>   html> 

Если мы сохраним этот файл в каталоге resources/templates , он будет автоматически выбран Spring Boot BasicErrorController по умолчанию .

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

Мы можем быть более конкретными, назвав файл с кодом состояния HTTP, который мы хотим, чтобы он использовал, например, сохранение файла как 404.html в resources/templates/error означает, что он будет явно использоваться для ошибок 404.

3.1. Пользовательский контроллер ошибок ​

Ограничение до сих пор заключается в том, что мы не можем запускать пользовательскую логику при возникновении ошибок. Для этого нам нужно создать bean-компонент контроллера ошибок, который заменит компонент по умолчанию.

Для этого нам нужно создать класс, реализующий интерфейс ErrorController . Кроме того, нам нужно установить свойство server.error.path , чтобы возвращать собственный путь для вызова при возникновении ошибки.

 @Controller   public class MyErrorController implements ErrorController     @RequestMapping("/error")   public String handleError()    //do something like logging   return "error";   >   > 

В приведенном выше фрагменте мы также аннотируем класс @Controller и создаем сопоставление для пути, указанного в свойстве server.error.path:

 server.error.path=/error 

Таким образом, контроллер может обрабатывать вызовы по пути /error .

В handleError() мы возвращаем пользовательскую страницу ошибки, которую мы создали ранее. Если мы вызовем ошибку 404 сейчас, будет отображаться наша пользовательская страница.

Давайте дополнительно усовершенствуем handleError() , чтобы отображать определенные страницы ошибок для разных типов ошибок.

Например, у нас могут быть красиво оформленные страницы специально для типов ошибок 404 и 500. Затем мы можем использовать код состояния HTTP ошибки, чтобы определить подходящую страницу ошибки для отображения:

 @RequestMapping("/error")   public String handleError(HttpServletRequest request)    Object status = request.getAttribute(RequestDispatcher.ERROR_STATUS_CODE);    if (status != null)    Integer statusCode = Integer.valueOf(status.toString());    if(statusCode == HttpStatus.NOT_FOUND.value())    return "error-404";   >   else if(statusCode == HttpStatus.INTERNAL_SERVER_ERROR.value())    return "error-500";   >   >   return "error";   > 

Тогда для ошибки 404, например, мы увидим страницу error-404.html :

4. Вывод

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

Как всегда, полный исходный код доступен на Github .

  • 1. Обзор
  • 2. Отключение страницы ошибок Whitelabel
  • 3. Отображение пользовательских страниц ошибок
    • 3.1. Пользовательский контроллер ошибок

    Как разрешить проблему Whitelabel Error Page spring?

    Решил попробовать изучить spring.
    Зашел на страничку spring.io и сделал все по быстрому гайду.
    Спринг запустился, но при переходе на локалхотст выдает ошибку Whitelabel Error Page.
    Перерыл половину интернета, ответа я найти не смог.
    ПС Использую эклипс последней ревизии.

    • Вопрос задан более года назад
    • 107 просмотров

    2 комментария

    Простой 2 комментария

    Видимо, вы что-то сделали не правильно.
    Попробуйте сделать правильно, возможно это поможет.

    azerphoenix

    Орхан Гасанлы @azerphoenix Куратор тега Spring

    Чтобы помочь вам нужно больше информации.
    Предположительно, скорее всего у вас метод контроллера ведет на какой-нибудь localhost:8080/hello-world , а вы стучитесь на главную localhost:8080/
    Скиньте код контроллера

    Почему ошибка Bad Request, status=400 при загрузке картинок?

    Использую sprin boot Ошибка Whitelabel Error Page This application has no explicit mapping for /error, so you are seeing this as a fallback. Tue Jan 25 13:54:17 YEKT 2022 There was an unexpected error (type=Bad Request, status=400). Controller

    @GetMapping("/uploadtest") public String uploadtest(Model model)  return "upload"; > @PostMapping("/postupload") public String postupload(@RequestParam("files") MultipartFile[] images,Model model)  return "upload"; >
    form method="post" action="/postupload" enctype="multipart/form-data"> input type="file" name="images" multiple class="form-control" accept=".jpg, .jpeg" > button type="submit" >Upload/button> /form>

    Если убрать @RequestParam(«files») MultipartFile[] images, то ошибки нет. Почему выходит ошибка?

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *