首页 > 解决方案 > 如何使用 JSF 和 Quarkus 显示自定义错误页面?

问题描述

我正在尝试在 JSF(myfaces 版本:2.3-next-M3)中显示不同状态代码(401、404、500,...)的自定义错误页面。我正在使用带有 JDK 8 的 Quarkus 应用程序服务器(1.5.2.Final)。

目前,如果发生异常,将显示默认的 Quarkus 内部服务器错误 HTML 页面。如果找不到资源,应用程序服务器将显示输入的不存在资源的路径。但我想显示我自己的自定义错误页面。

我已经尝试过:

网页.xml:

<error-page>
    <error-code>404</error-code>
    <location>/error/404.xhtml</location>
</error-page>

提供者 Bean:

@Provider
public class NotFoundExceptionMapper implements ExceptionMapper<NotFoundException> {

    @Override
    public Response toResponse(NotFoundException exception) {
        String text = new Scanner(this.getClass().getResourceAsStream("/META-INF/resources/error/404.xhtml"), "UTF-8").useDelimiter("\\A").next();
        return Response.status(404).entity(text).build();
    }
}

但没有任何效果。我错过了什么吗?我可以做些什么来显示我的自定义错误页面?

标签: javajsfquarkus

解决方案


推荐阅读