0

私はアプリケーションで例外処理に取り組んでいます。try catchブロックを使用して、コードで発生した例外をキャッチしました。また、リスナーを作成して「faces-config.xml」にリスナーを登録することで、タイムアウト例外を処理することもできました。

しかし、コンストラクターの「NullPointerException」やエラーコード500、400などの予期しないエラーをキャッチする際に問題に直面しています。

「web.xml」のタグを使用しました

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

私は例外を処理するために多くの方法を試しましたが、誰かが解決策を見つけるのを手伝ってくれるでしょうか。これらの例外を処理しようとすると発生するエラーは次のとおりです。

私はJSF1.2を使用しており、サーバーはwebsphere8です。

コンソールに次の例外が表示されます。

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サーブレットのURLパスを確認するように求められました。私のweb.xmlでは、サーブレットマッピングは次のとおりです。

 <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のルールがわかりません。原因となった問題について、お詫び申し上げます。

任意の解決策をいただければ幸いです。

4

1 に答える 1

0
 java.lang.RuntimeException: FacesContext not found 

FacesServletこれは、 (の作成を担当する)のURLパターンと一致しないURLを介してJSFコンポーネントを含むJSPページを要求している場合に発生しますFacesContext

FacesServletで定義されているのURLパターンに一致するように、エラーページの場所を変更する必要がありますweb.xml主題に関する重複した質問に基づいて、これはとりわけです。したがって、主題に関する最初の質問*.facesのコメントで提案したとおりに、エラーページの場所を次のように設定する必要があります。

<location>/sc00/ErrorPage.faces</location>
于 2012-11-12T23:54:01.557 に答える