Skill/spring

spring boot 404 에러처리

진열사랑 2022. 12. 8. 22:08

출처 : https://7942yongdae.tistory.com/140

 

사용자 정의 오류 페이지 정의하고 사용하기

스프링 부트에서 사용자 정의 오류 페이지를 사용하는 방법에 대해 공식 문서는 아래와 같이 설명합니다. 기본적으로 제시하는 방법은 /error 폴더를 추가해 오류를 처리하는 static HTML 파일을 추가해 정의하는 것입니다. 이때 정의하는 HTML 파일의 이름은 HTTP 상태 코드(4xx, 5xx)를 따라야 합니다. 파일 이름은 정확한 상태 코드 또는 series mask여야 합니다.

thymeleaf, FreeMarker와 같은 템플린 엔진을 사용하는 경우에는 public 폴더 대신 templates 폴더를 사용하면 됩니다.

 public 폴더와 templates 폴더 두 개의 폴더에 error이 정의된 경우에는 viewResolver에 정의된 우선순위에 따라 표출되는 파일이 달라집니다. 우선순위를 변경하지 않았다면 기본 순서는 템플릿 엔진이 우선순위를 가집니다.

 

위에서 제시한 데이터와 관련된 설정은 다음 몇 가지 속성을 이용해 부가적인 설정이 가능합니다.

server.error.include-exception : exception의 내용 포함 여부 [false(기본), true]
server.error.include-stacktrace : stacktrace 내용 포함 여부 [naver(기본), always, on_param]

Whitelabel 오류 페이지 비활성화하기

사용자 정의 오류 페이지를 추가하는 것과 별개로 스프링 부트에서 사용되는 whitelabel을 비활성화하는 방법이 있습니다. whitelabel을 사용하지 않고 원시적인 오류 처리를 확인하고 싶으신 경우에 사용하시면 됩니다.

 

properties 혹은 yaml을 이용해 whitelabel 비활성화 설정하기

- application.properties

server.error.whitelabel.enabled=false

application.properties에 server.error.whitelabel.enabled을 설정하거나 application.yml 파일을 추가하면 whitelabel 오류 페이지가 비활성화되고 기본 애플리케이션 컨테이너(예: Tomcat)에서 정의된 오류 페이지가 표시됩니다.

Tomcat 오류 처리 페이지