JSF 1.2异常处理

时间:2012-11-12 16:40:36

标签: java jsp jsf exception-handling

我正在申请中处理异常处理。我使用try catch块来捕获代码中出现的异常,我还可以通过编写监听器并在“faces-config.xml”中注册监听器来处理超时异常。

但我遇到了在构造函数或错误代码500,400等中捕获“NullPointerException”等意外错误的问题。

我使用了“web.xml”中的标签

<error-page>
      <exception-type>java.lang.Exception</exception-type>
      <location>/sc00/ErrorPage.jsp</location>
</error-page>

我尝试了很多方法来处理异常,任何人都可以帮我找到解决方案。当我尝试处理这些异常时,我得到的错误如下。

我使用的是JSF 1.2,服务器是websphere 8

控制台显示以下例外。

com.ibm.ws.webcontainer.servlet.ServletWrapper service SRVE0014E: Uncaught service() exception root cause Faces Servlet: javax.servlet.ServletException

E com.ibm.ws.webcontainer.servlet.ServletWrapper service SRVE0068E: An exception was thrown by one of the service methods of the servlet [/sc00/ErrorPage.jsp] in application [MembershipEligibilityScreensEAR]. Exception created : [java.lang.RuntimeException: FacesContext not found

我的错误页面位于/WebContent/sc00/ErrorPage.jsp中,ErrorPage.jsp没有与之关联的辅助bean。

许多解决方案要求我查看Faces Servlet的URL路径,在我的web.xml中,servlet-mapping是以下

 <servlet>
    <servlet-name>Faces Servlet</servlet-name>
    <servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
    <load-on-startup>1</load-on-startup>
</servlet>

  <servlet-mapping>
    <servlet-name>Faces Servlet</servlet-name>
    <url-pattern>*.faces</url-pattern>
</servlet-mapping>
<servlet-mapping>
    <servlet-name>Faces Servlet</servlet-name>
    <url-pattern>/faces/*</url-pattern>
</servlet-mapping>

我的faces-config.xml中的所有路径都引用/ FolderName / JspName,它们工作正常,即使在Navigation.xml中它们也能正常工作。

我如何将其导航到ErrorPage.jsp,有什么办法让我可以为这类问题编写一个监听器

很抱歉发布了太多多余的问题,我是JSF的新手,我不知道StackOverflow的规则,我为我造成的问题道歉。

任何解决方案都将受到赞赏。

1 个答案:

答案 0 :(得分:0)

 java.lang.RuntimeException: FacesContext not found 

当您通过不匹配FacesServlet(负责创建{FacesContext的网址模式的网址请求包含JSF组件的JSP页面时,就会发生这种情况。 1}})。

您需要更改错误页面位置,以匹配FacesServlet中定义的web.xml的网址格式。根据您对该主题的duplicate questions,这是其他*.faces,因此按照以下方式设置错误页面位置应完全按照我在first question关于该主题的评论中的建议进行操作

<location>/sc00/ErrorPage.faces</location>