본문 바로가기
소프트웨어 개발/JAVA

스프링부트(Spring boot) -오류페이지 작성법 ,whitelabel error page 해결

by 인생은즐겁게 2022. 12. 4.
반응형

 

1. 작업환경

개발도구 : vscode

JDK 유형 :  openjdk 17

스프링 부트 버전 : 3.0

개발환경 OS : windows 10 - 11

 

 

2. 들어가며

 

whitelabel error페이지를 수정하기 위해서 비활성화 처리 후 ErrorController를 상속 받아서 자신이 원하는 오류 페이지를 작성하면 된다.

스프링 부트 기본 오류 페이지 - whitelabel error

 

 

3. application.properties 작성하기

 

resources 디렉토리 하위에 있는 파일인 application.properties 아래와 같이 작성을 하자

server.error.path 속성으로 지정된 오류 페이지를 맵핑을 하고, whitelabel 오류 페이지를 비활성화 처리를 하자

server.error.whitelabel.enabled=false
server.error.path=/error
spring.autoconfigure.exclude=org.springframework.boot.autoconfigure.web.ErrorMvcAutoConfiguration

 

 

4. 오류 템플릿 파일 작성

resources/templates 디렉토리 하위에 아래와 같은 구조로 404.html,500.html, error.html 파일을 생성하자

404.html
500.html
error.html

 

5. 오류 핸들링 컨트롤러 만들기

 

ErrorController를 상속을 받아서 컨트롤러를 아래와 같이 만들도록 하자

@Controller
public class CustomError implements ErrorController{
    
    @RequestMapping("/error")
    public String error(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 "404";
            }
            else if(statusCode == HttpStatus.INTERNAL_SERVER_ERROR.value()) {
                return "500";
            }
        }
        return "error";
    }
}

 

 

6.  확인해 보기

맵핑되지 않은 경로로 접근시 404.html를 반환을 하며, 내부서버 오류가 발생되면 500.html을 반환을 한다.

 

404 오류 페이지

반응형

댓글