gpt4 book ai didi

java - WildFly 访问不存在的 JSF 页面时不显示 404 错误页面

转载 作者:太空宇宙 更新时间:2023-11-04 06:56:30 25 4
gpt4 key购买 nike

我正在将我的应用程序部署到 WildFly 8,并尝试对其进行配置,以便通过将以下内容添加到我的 web.xml 中来给出自定义 404 错误页面

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

当我尝试访问不退出的非 JSF 页面时,这工作正常。例如,如果我尝试访问名为 IDoNotExist.html 的页面,则我的错误页面会正确显示。

但是,如果我尝试访问不存在的 JSF 页面,例如IDoNotExist.jsf,然后我没有得到自定义错误页面 - 我只是得到一个空白页面,并且以下错误会记录到 WildFly。

WARNING [javax.enterprise.resource.webcontainer.jsf.context] (default task-8) JSF1091: No mime type could be found for file  
/IDoNotExist.jsp. To resolve this, add a mime-type mapping to the applications web.xml.

请注意,错误日志引用了 .JSP 页面,而我尝试访问 .JSF 页面。

我尝试为 JSP 页面添加 mime 类型映射,虽然这消除了控制台上的错误消息,但我仍然看不到不存在的 JSF 页面的自定义 404 页面。

我还认为在页面呈现之前可能会抛出一些异常,因此我尝试在 web.xml 中添加异常错误处理程序,但这也没有什么区别。

我的 web.xml 文件是否缺少某些内容或者需要其他配置?

我的 web.xml 很简单:

<?xml version="1.0" encoding="UTF-8"?>

<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
version="3.1">
<error-page>
<error-code>404</error-code>
<location>/error.jsf</location>
</error-page>
</web-app>

谢谢。

最佳答案

我已经通过定义 JSF servlet 映射来响应 *.xhtml 文件而不是使用默认的 .jsf 来解决这个问题

<servlet-mapping>
<servlet-name>FacesServlet</servlet-name>
<url-pattern>*.xhtml</url-pattern>
</servlet-mapping>

当我使用 *.xhtml 作为 jsf 映射时,可以正确处理自定义 404 页面。

关于java - WildFly 访问不存在的 JSF 页面时不显示 404 错误页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22673449/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com