我正在将我的应用程序部署到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>谢谢。
发布于 2014-03-26 23:04:34
我通过定义JSF映射来响应*.xhtml文件来解决这个问题,而不是使用默认的.jsf
<servlet-mapping>
<servlet-name>FacesServlet</servlet-name>
<url-pattern>*.xhtml</url-pattern>
</servlet-mapping>当我使用*.xhtml作为jsf映射时,将正确处理自定义404页。
https://stackoverflow.com/questions/22673449
复制相似问题