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

Весенняя загрузка: Настройка Страницы с ошибкой Белой Метки

Узнайте, как настроить страницу ошибок по умолчанию в приложении Spring Boot.

1. Обзор

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

4. Заключение

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

Источник

Русские Блоги

Анализ и решение исходного кода Spring Boot 2.x Whitelabel Error Page

Whitelabel error page что это за ошибка. 64ed0457f00ba428b7af8950b297ba85. Whitelabel error page что это за ошибка фото. Whitelabel error page что это за ошибка-64ed0457f00ba428b7af8950b297ba85. картинка Whitelabel error page что это за ошибка. картинка 64ed0457f00ba428b7af8950b297ba85

в настоящее время использую Spring Boot Появится если есть ошибка Whitelabel Error Page Пейдж, это Spring Boot Страница, которая обрабатывает ошибки по умолчанию, создается в жестко запрограммированной форме. Мы можем заменить тональный сигнал, использовать нашу собственную страницу ошибки и украсить ее.

Первый выбор Spring Boot Если возникает ошибка, например: 500 、 503 、 404 И т.п. org.springframework.boot.autoconfigure.web.servlet.error.BasicErrorController Мы также можем переписать его (если вы переписываете его, вы будете удивлены, обнаружив, что следующий контент является избыточным, ха-ха) для реализации вашей собственной логики;
Whitelabel error page что это за ошибка. 53112a7967808928f3f5c4fb4456bf69. Whitelabel error page что это за ошибка фото. Whitelabel error page что это за ошибка-53112a7967808928f3f5c4fb4456bf69. картинка Whitelabel error page что это за ошибка. картинка 53112a7967808928f3f5c4fb4456bf69

Как вы можете видеть на картинке Spring Boot Я думаю, очень хорошо, как синхронная, так и асинхронная обработка, здесь мы обсуждаем только проблему синхронизации, потому что будет происходить только синхронизация Whitelabel Error Page

Мы находим код, который анализирует представление

resolveErrorView Родительский класс AbstractErrorControllers достигать
Whitelabel error page что это за ошибка. 46ad02c528858b06da6582e6c916adec. Whitelabel error page что это за ошибка фото. Whitelabel error page что это за ошибка-46ad02c528858b06da6582e6c916adec. картинка Whitelabel error page что это за ошибка. картинка 46ad02c528858b06da6582e6c916adec

ErrorViewResolver Реализация по умолчанию DefaultErrorViewResolver
Whitelabel error page что это за ошибка. 38a71644c74cf391a34e6f209e25f72b. Whitelabel error page что это за ошибка фото. Whitelabel error page что это за ошибка-38a71644c74cf391a34e6f209e25f72b. картинка Whitelabel error page что это за ошибка. картинка 38a71644c74cf391a34e6f209e25f72b

Из resolve В методе мы можем разделить несколько шагов
1. Найдите доступного поставщика шаблонизатора

Если ошибка 500 Тогда на этот раз errorViewName=»error/500″

Найти логику TemplateAvailabilityProviders категория getProvider Метод, этот метод будет кэшировать существующий поставщик шаблонизатора, в частности findProvider Чтобы найти, если findProvider Я не нашел его и зарегистрировал бы по умолчанию NoTemplateAvailabilityProvider
Whitelabel error page что это за ошибка. 46f81f53d2443aa1a3f895befec44b54. Whitelabel error page что это за ошибка фото. Whitelabel error page что это за ошибка-46f81f53d2443aa1a3f895befec44b54. картинка Whitelabel error page что это за ошибка. картинка 46f81f53d2443aa1a3f895befec44b54
Whitelabel error page что это за ошибка. fb4af6d825b164f022890ab6d5f4b96a. Whitelabel error page что это за ошибка фото. Whitelabel error page что это за ошибка-fb4af6d825b164f022890ab6d5f4b96a. картинка Whitelabel error page что это за ошибка. картинка fb4af6d825b164f022890ab6d5f4b96a

Внимание this.providers это Spring Boot Он будет добавлен при запуске контейнера. Будет ли добавлен поставщик механизма шаблонов, определяется наличием имени класса механизма шаблонов. Spring Boot Зарегистрируем несколько поставщиков шаблонных движков;
Whitelabel error page что это за ошибка. c1e00aecba554abd1762af89d53e8ae6. Whitelabel error page что это за ошибка фото. Whitelabel error page что это за ошибка-c1e00aecba554abd1762af89d53e8ae6. картинка Whitelabel error page что это за ошибка. картинка c1e00aecba554abd1762af89d53e8ae6

Загрузить провайдер шаблонного движка
Whitelabel error page что это за ошибка. 405e207ba70a215a26e1119b5a08bcdb. Whitelabel error page что это за ошибка фото. Whitelabel error page что это за ошибка-405e207ba70a215a26e1119b5a08bcdb. картинка Whitelabel error page что это за ошибка. картинка 405e207ba70a215a26e1119b5a08bcdb

loadFactories Загрузка есть spring-boot-autoconfigure-2.xxxx.jar Ниже META-INF/spring.factories Этот метод может получить все классы реализации родительского класса.
Whitelabel error page что это за ошибка. 4a42e21f0d822c0f3d675f4cc4cc3dd6. Whitelabel error page что это за ошибка фото. Whitelabel error page что это за ошибка-4a42e21f0d822c0f3d675f4cc4cc3dd6. картинка Whitelabel error page что это за ошибка. картинка 4a42e21f0d822c0f3d675f4cc4cc3dd6

Вот ThymeleafTemplateAvailabilityProvider Например
Whitelabel error page что это за ошибка. d59ca34ed4b515cd2e1bcfa3491fe995. Whitelabel error page что это за ошибка фото. Whitelabel error page что это за ошибка-d59ca34ed4b515cd2e1bcfa3491fe995. картинка Whitelabel error page что это за ошибка. картинка d59ca34ed4b515cd2e1bcfa3491fe995
Из рисунка видно, что вы ищете classpath:/templates/error/500.html
Так что если оно появится 500 Мы можем ошибаться src/main/resources/ Новый каталог templates/error Создать новый thymeleaf из 500.html Шаблон достаточно; 404 сопереживание

Отсюда нетрудно понять, что если вы хотите успешно найти неправильный шаблон, вы должны соответствовать следующим условиям

2. Если на шаге 1 provider Если вы найдете его, вам не нужно переходить к следующему шагу, вы можете напрямую вернуться к просмотру

3. Если на шаге 1 не выполнены условия provider Тогда сдай resolveResource Ручка, давайте посмотрим resolveResource логика
Whitelabel error page что это за ошибка. b33ed78a387831c372e265dfe2f429eb. Whitelabel error page что это за ошибка фото. Whitelabel error page что это за ошибка-b33ed78a387831c372e265dfe2f429eb. картинка Whitelabel error page что это за ошибка. картинка b33ed78a387831c372e265dfe2f429eb
Этот шаг в основном предназначен для непосредственного получения статики html ;Общее 500 с участием 404 Вы можете напрямую использовать статический HTML Ресурс может отображать дружественную подсказку, поэтому здесь вы можете получить статический файл ресурса напрямую
Местоположение поиска по умолчанию следующее
Whitelabel error page что это за ошибка. e09859e0f8811a87e21ef57090b897cf. Whitelabel error page что это за ошибка фото. Whitelabel error page что это за ошибка-e09859e0f8811a87e21ef57090b897cf. картинка Whitelabel error page что это за ошибка. картинка e09859e0f8811a87e21ef57090b897cf

Может быть изменено по конфигурации

Это Whitelabel Error Page источник

В итоге, есть следующие решения

Если в проекте используется шаблонизатор, например thymeleaf freemarker
в это время server.error.whitelabel.enabled Выключить и включить

Если в проекте нет шаблонного движка

Если у вас есть какие-либо вопросы или ошибки, вы можете оставить сообщение
Код не прост, пожалуйста, укажите источник

Обратите внимание на публичную учетную запись WX, вы не можете пропустить это
Whitelabel error page что это за ошибка. abd7f003274942a79d4188c8efdaf3a9. Whitelabel error page что это за ошибка фото. Whitelabel error page что это за ошибка-abd7f003274942a79d4188c8efdaf3a9. картинка Whitelabel error page что это за ошибка. картинка abd7f003274942a79d4188c8efdaf3a9

Интеллектуальная рекомендация

Преобразования общих типов для передачи данных по протоколу iOS-TCP / IP (приветствуются дополнения

Раньше я работал над проектами TCP / IP. Обработка данных является наиболее сложной задачей. Каждый раз, когда встречается новый тип данных, добавляется новый класс методов, что приводит к путанице. С.

Whitelabel error page что это за ошибка. aeacc656e09f94aee68463a415e80afe. Whitelabel error page что это за ошибка фото. Whitelabel error page что это за ошибка-aeacc656e09f94aee68463a415e80afe. картинка Whitelabel error page что это за ошибка. картинка aeacc656e09f94aee68463a415e80afe

Lotus версия 0.4.1 Данные цепочки блока Copy Block снижает синхронизацию

Lotus версия Скопируйте данные с узла, который был синхронизирован высотой блока Узел паузыlotus daemonБеги, сжатый каталогdatastoreПуть кlotus/datastore Копировать каталогchainс участиемmetadataЗамен.

Маленькая программа wx: ограничение количества списков цикла for

Все мы знаем, что wx: for используется для зацикливания массива. В этом цикле будут зациклены все данные в списке. Но часто нам не нужно зацикливать все данные или мы не хотим отображать все данные. О.

Whitelabel error page что это за ошибка. 9ccc78229c3aa87dc83e553454619251. Whitelabel error page что это за ошибка фото. Whitelabel error page что это за ошибка-9ccc78229c3aa87dc83e553454619251. картинка Whitelabel error page что это за ошибка. картинка 9ccc78229c3aa87dc83e553454619251

Шантажировал биткойн впервые

Предисловие Новости о вымогателях всегда случались, но я всегда чувствую, что это вряд ли случится со мной. В итоге я встретился сегодня. проблема Во второй половине дня я отправлю интерфейс студентам.

Источник

Русские Блоги

Основная причина страницы ошибки SpringBoot Whitelabel, три решения и их характеристики

0, краткое описание

Перед изучением этой заметки лучше всего иметь некоторое представление о Spring mvc и Tomcat, чтобы было удобнее понимать.Если вам нужно знать наиболее прямое решение, перетащите его вниз, чтобы увидеть образец кода.

1. Страница ошибки Whitelabel

То, что называется страницей ошибок Whitelabel (также называемой белой страницей), является страницей описания аномального HTTP-запроса в SpringBoot, как показано ниже.

Итак, теперь мы пришли к пониманию, в какой ситуации будут появляться белые страницы и как решить эту проблему. Давайте воспользуемся случаем 404, чтобы понять причину.

Перейти непосредственно к классу DispatcherServlet protected void doDispatch(HttpServletRequest request, HttpServletResponse response) throws Exception Метод, содержащий фрагменты кода

В методе getHandler будет выполняться обход HandlerMapping в текущем веб-контейнере, чтобы найти соответствующий обработчик

Не удается найти соответствующий ресурс в mv = ha.handle (loadedRequest, response, mappedHandler.getHandler ()), установите код состояния ответа на 404Подробнее см. Метод handleRequest класса ResourceHttpRequestHandler.

Теперь это эквивалентно установке кода состояния запроса на 404, больше ничего не делается, mv также равно null

В это время вам нужно вернуться к процессу вызова Tomcat. Если вы запрашиваете процесс вызова Tomcat, вы должны знать, что когда Tomcat получает запрос сокета Socket на соединителе, он упаковывается в запрос, ответ и другую информацию, которая будет отправлена ​​в Engine-> Host и другие компоненты. Он доставляется слой за слоем, затем принимается конвейером каждого компонента, а затем фильтруется соответствующим клапаном (клапаном) слой за слоем.

На этот раз дошел до класса StandardHostValve private void status(Request request, Response response) метод

Белая страница mv, предоставляемая SpringBoot, используется позже для визуализации содержимого белой страницы, которую мы видим.

Пока что весь процесс выполнен,Подводя итог, это запрос несуществующей ссылки, которая перенаправляется в запрос / error после того, как обнаруживается, что это запрос 404.

Тогда решение очень простое, есть три решения, но эти три решения под разными углами, чтобы решить проблему.

2. Решите проблему с белой страницей.

2.1, добавить перехватчик

После того, как перехватчик перехватит запрос / error, он вынужден изменить mv, так что последний отрендеренный mv для пробного использования является нашей настраиваемой настройкой, а не содержимым белой страницы, где mv самой белой страницы будет проходить Анализатор представления ContentNegotiating Обработка становится ErrorMvcAutoConfiguration$WhitelabelErrorViewConfiguration

Обратите внимание, что все это истечение фактически было обработано 3 HTTP-запросами,На следующем рисунке показана информация журнала, распечатанная с использованием мониторинга событий HTTP.

Пройдите через / abc ==> jump / err ==> jump / error (содержимое не отображается, потому что содержимое, отправленное в браузер, было отображено с помощью / err

Реальный поток обработки вызовов состоит в том, что / abc не находит подходящий обработчик, а затем решает передать его на путь / error для обработки, но он перехватывается перехватчиком и перенаправляется в / err для обработки.

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

2.2, добавьте ErrorPage

Добавление подходящей ErrorPage не приведет к переходу к пути по умолчанию / ошибке перехватчика, а перейдет к настраиваемой ErrorPage. Причина этого была указана в методе статуса выше.

Это проблема скачка петли

Итак, как ее решить, нужно исходить из фундаментальной цели

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

2.3, путь добавления / ошибки

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

Во-первых, я добавил и определил очень простой метод обработки пути ошибки, но при запуске Springboot есть 3 метода обработки пути ошибки, и они одновременно принадлежат одному и тому же дескриптору. Правила маршрутизации URL Обработка, выберите ручку в автоконфигурации,Это должно было привести к тому, что наш заказ / ошибка недействительны

После тестирования он действительно недействителен, и белая страница все еще отображается, так как это решить? Есть несколько способов сделать то же самое

Мы уже знаем, что эти три / ошибки находятся в картографе маршрутов RequestMappingHandlerMapping.Мы можем сделать так, чтобы пользовательский процессор не сохранялся в карте маршрутов, и сделать Spring приоритетом согласованного преобразователя маршрутов при опросе. Да, но на самом деле BeanNameUrlMapping в handlerMapping все еще находится после RequestMappingHandlerMapping, если вы измените порядок, это также очень сложно

Использование SimpleUrlHandlerMapping не подходит для Springboot. Если вы используете конфигурацию xml, вы можете напрямую установить ее URL-адрес. Это будет очень удобно. Если вы применяете метод аннотации в springboot, требуется дополнительная настройка, как показано в следующем коде

Хотя / error вводится в SimpleUrlHandlerMapping, он все равно будет отображаться, даже если добавлена ​​дополнительная конфигурация Нет ошибки адаптера ,Этот метод не применим

Оглядываясь назад на наблюдение BasicErrorController, мы можем унаследовать интерфейс ErrorController сами.

Источник

Spring Boot Удалить Страницу С Ошибкой Whitelabel

Я пытаюсь удалить страницу ошибки белой метки, поэтому то, что я сделал, было создано отображение контроллера для «/error»,

но теперь я получаю эту ошибку.

не знаю, делаю ли я что-нибудь не так. Пожалуйста, совет.

уже добавил error.whitelabel.enabled=false для приложения.свойства файла, все еще получая ту же ошибку

11 ответов:

вам нужно изменить код следующим образом:

чтобы увидеть этот факт просто перейдите к ErrorMvcAutoConfiguration.basicErrorController здесь.

Если вы хотите более» JSONish » страницу ответа вы можете попробовать что-то вроде этого:

вы можете удалить его, выполнив следующую команду:

однако обратите внимание, что это, вероятно, приведет к появлению белых страниц контейнера сервлета:)

EDIT: другой способ сделать это с помощью приложения.и YAML. Просто введите значение:

для Spring Boot org.springframework.boot.autoconfigure.web.

Spring boot doc «было» неправильно (они с тех пор исправили это):

чтобы отключить его, вы можете установить ошибка.whitelabel.включено = false

чтобы отключить его, вы можете установить сервер.ошибка.whitelabel.включено = false

руководство здесь говорит, что вы должны установить server.error.whitelabel.enabled до false отключить стандартную страницу ошибки. Может быть, это то, что вы хотите?

Я испытываю ту же ошибку после добавления /отображения ошибок, кстати.

С Пружинной Загрузкой > 1.4.х вы могли бы сделать это:

но тогда в случае исключения сервлет контейнер будет отображать свою собственную страницу ошибки.

Это зависит от вашей версии spring boot:

, когда SpringBootVersion 1.2 затем использовать error.whitelabel.enabled = false

, когда SpringBootVersion>= 1.3 затем использовать server.error.whitelabel.enabled = false

в Spring Boot 1.4.1 с помощью шаблонов усов, размещение ошибки.html в папке templates будет достаточно:

дополнительные переменные могут быть переданы путем создания перехватчика для /error

сервер.ошибка.whitelabel.включено=false

включите указанную выше строку в приложение папки ресурсов.свойства

просто добавьте это в свою конфигурацию Spring Boot:

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

настройщик также может быть отдельным @Component при желании.

Я пытался называть конечную точку REST из микрослужб и я был с помощью resttemplate по поставить метод.

В моем дизайне, если какая-либо ошибка произошла внутри конечной точки REST, она должна возвращать ответ на ошибку JSON, он работал для некоторых вызовов, но не для этого поставить один, он вернулся в страница ошибки белой метки.

поэтому я провел некоторое расследование, и я узнал, что;

Весна попробуйте понять вызывающий объект, если это машина, то он возвращает ответ JSON или если это браузер, чем он возвращает страница ошибки белой метки HTML.

в результате: мое клиентское приложение должно было сказать REST endpoint, что вызывающий абонент является машиной, а не браузером, поэтому для этого клиентское приложение должно было добавить ‘ application / json ‘ в заголовок ACCEPT явно для метода resttemplate ‘put’. Я добавил Это в заголовок и решил проблему.

мой вызов конечная точка:

для выше вызова мне пришлось добавить ниже заголовок param.

или я попытался изменить put на exchange, в этом случае exchange call добавил тот же заголовок для меня и тоже решил проблему, но я не знаю, почему 🙂

Источник

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

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

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

Как исправить ее в данном проекте?

В HTML в строке по типу

выделяется как ошибка. Почему?

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 :

Добавьте в application.properties :

Whitelabel error page что это за ошибка. . Whitelabel error page что это за ошибка фото. Whitelabel error page что это за ошибка-. картинка Whitelabel error page что это за ошибка. картинка

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

Какие есть варианты 1. Ошибка при получении/обработке данных на сервере (как пример NullPointerException ). Пройтись дебагом по коду, посмотреть не выпадает ли где exception. 2. Ошибка при парсинге страницы thymeleaf.

Посмотрите лог, скорее всего ваша ошибка выше, чем то, что вы указали в отрывке.

Whitelabel error page что это за ошибка. . Whitelabel error page что это за ошибка фото. Whitelabel error page что это за ошибка-. картинка Whitelabel error page что это за ошибка. картинка

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

При работе 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 сделал следующее:

Источник

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

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