繁体   English   中英

Spring Boot-以独立方式启动应用程序时不显示自定义错误页面(java -jar)

[英]Spring Boot - custom error page doesn't show up when the app is started in a standalone way (java -jar)

我有一个带有自定义错误页面的Spring Boot应用程序-由实现ErrorController的简单Controller处理:

@Controller
public class CustomErrorController implements ErrorController {

    private static final String PATH = "/error";

    @RequestMapping(value = PATH)
    public ModelAndView error() {
        return new ModelAndView("error");
    }

    @Override
    public String getErrorPath() {
        return PATH;
    }

}

当在Eclipse中启动应用程序的主类时,此方法运行良好。 但是,当我通过执行mvn clean install将应用程序打包到胖罐中,然后通过调用java -jar myapp.jar启动它时,自定义错误页面不会出现-我只看到标准的Whitelabel错误页面。

我找到了解决方案,尽管我仍然不知道为什么从Eclipse运行Main类和使用fat jar和java -jar命令运行应用程序之间的初始代码行为有所不同。

到目前为止:我在日志中发现SpringBoot找到我的CustomErrorController作为/error路径的处理程序。 但是,在下一步中,他调用了org.springframework.boot.autoconfigure.web.ErrorMvcAutoConfiguration类中定义的视图。 解决方案只是将视图名称更改,例如从error更改为errorPage

@Controller
public class CustomErrorController implements ErrorController {
    private static final String PATH = "/error";

    @RequestMapping(value = PATH, produces = "text/html")
    public ModelAndView error() {
        return new ModelAndView("errorPage");
    }

    @Override
    public String getErrorPath() {
        return PATH;
    }

}

不知何故, ErrorMvcAutoConfiguration的视图将覆盖具有相同名称的自定义创建的视图。 第二个问题是-为什么在Eclipse中启动应用程序时为什么看不到这种现象?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM