Spring Boot Remove Whitelabel Error Page for web application

21,323

Solution 1

Turn off whitelabel error pages in application.properties

server.error.whitelabel.enabled=false

See also Spring Boot Docs

Solution 2

You can write your own exception handler in Spring and redirect to the error page

Below one is to handler the Exception and its sub classes

@ExceptionHandler(Exception.class)
public ModelAndView globalExceptionHandler(Exception e) {
    ModelAndView modelAndView = new ModelAndView("error");
    modelAndView.addObject("message", e.getMessage());
    return modelAndView;
}

You can write any number of exception handlers in controller, also narrow the exception you need in handlers, return appropriate error page.

Have a look at the documentation

Share:
21,323
Manu
Author by

Manu

Updated on July 09, 2022

Comments

  • Manu
    Manu almost 2 years

    I have a spring boot web application,which I am deploying as a war file in tomcat. I do not want the user to be displyed the white-label error page. I have progressed a bit on this, but need to re-direct the same to error page.

    The below code is /error white-label error page is custom error message. But i want it to be re-directed to a error.jsp or error.html available under the template folder in resources of my web application. I tried changing the @RestController to @Controller with no luck.

    import org.springframework.boot.autoconfigure.web.ErrorController;
    import org.springframework.web.bind.annotation.RequestMapping;
    import org.springframework.web.bind.annotation.RestController;
    
    @RestController
    public class CustomErrorController implements ErrorController {
    
        private static final String PATH = "/error";
    
        @RequestMapping(value = PATH)
        public String error() {
            return "Unexpected error has happened.Please contact administrator!!!";
        }
    
        @Override
        public String getErrorPath() {
            System.out.println("-- Error Page GET --");
                return "error";
        }
    
    }
    

    Dependency

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter</artifactId>
    </dependency>
    <dependency>
        <groupId>commons-io</groupId>
        <artifactId>commons-io</artifactId>
        <version>2.4</version>
    </dependency>
    <dependency>
        <groupId>jstl</groupId>
        <artifactId>jstl</artifactId>
        <version>1.2</version>
    </dependency>
    <dependency>
        <groupId>org.springframework.security</groupId>
        <artifactId>spring-security-taglibs</artifactId>
        <version>4.0.1.RELEASE</version>
        <exclusions>
            <exclusion>
                <artifactId>spring-aop</artifactId>
                <groupId>org.springframework</groupId>
            </exclusion>
        </exclusions>
    </dependency>
    
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-webmvc</artifactId>
    </dependency>
    <!-- Provided (for embedded war support) -->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-tomcat</artifactId>
        <scope>provided</scope>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-security</artifactId>
    </dependency>
    
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-actuator</artifactId>
        <version>1.2.3.RELEASE</version>
    </dependency>
    
    <dependency>
        <groupId>com.fasterxml.jackson.core</groupId>
        <artifactId>jackson-core</artifactId>
        <version>2.6.0</version>
    </dependency>
    <dependency>
        <groupId>org.apache.httpcomponents</groupId>
        <artifactId>httpcore</artifactId>
        <version>4.4</version>
    </dependency>
    
  • Manu
    Manu almost 8 years
    This will redirect to serverlet error page.Its's not re-directing to custom error page