Spring Boot Remove Whitelabel Error Page for web application
Solution 1
Turn off whitelabel error pages in application.properties
server.error.whitelabel.enabled=false
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
Manu
Updated on July 09, 2022Comments
-
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 almost 8 yearsThis will redirect to serverlet error page.Its's not re-directing to custom error page