java - Spring Boot 删除 Web 应用程序的 Whitelabel 错误页面

标签 java spring spring-mvc spring-boot spring-4

我有一个 Spring Boot Web 应用程序,我将其作为 war 文件部署在 tomcat 中。我不希望向用户显示白标签错误页面。我在这方面取得了一些进展,但需要将其重定向到错误页面。

下面的代码是/error白标签错误页面是自定义错误消息。但我希望将其重定向到我的 Web 应用程序资源中的模板文件夹下可用的 error.jsp 或 error.html。我尝试将 @RestController 更改为 @Controller 但没有成功。

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>
    <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>

最佳答案

关闭 application.properties 中的白标错误页面

server.error.whitelabel.enabled=false

See also Spring Boot Docs

关于java - Spring Boot 删除 Web 应用程序的 Whitelabel 错误页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37769173/

相关文章:

Spring 无法识别某些 @Configuration 和 @Component 类

java - 为什么单个Java char变量可以表示超过65535个字符?

java - CORS 预检选项请求的 403 错误。怎么修?

java - Android 使用 setAccessibilityTraversalAfter() 更改可访问性顺序不起作用

java - 是否有任何与 Spring 集成的 Java PDF 库?

java - 可以使用 @Autowire @Service beans 但不能使用 "new"关键字实例化类的成员 - 即使配置了上下文扫描

java - 如何使用带有内容的 spring boot Controller 下载 csv 文件?

java - 如何使用原生sql获取现有表

java - 为什么ResourceBundleMessageSource 只允许使用messageSource 作为bean id?

java - 使用自定义用户通过数据库进行 Spring Security 身份验证