JSFの空白ページ


2

私のコードが例外をスローすると、毎回ではなくjsfが空白のページを表示することがあります。私はレイアウトのためにfaceletsを使用しています。 このSun forumn´s postでも同様のエラーが報告されましたが、回答はありませんでした。 同じ問題を抱えている人はいますか? ;)

いくつかのリクエストのためです。

web.xmlの

<error-page> 
     <exception-type>com.company.ApplicationResourceException</exception-type> 
     <location>/error.faces</location> 
</error-page> 

とJSFに関連するスタックが本当の例外の後に印刷されています:ここでは、よりdatails従う

####<Sep 23, 2008 5:42:55 PM GMT-03:00> <Error> <HTTP> <comp141> <AdminServer> <[ACTIVE] ExecuteThread: '3' for queue: 'weblogic.kernel.Default (self-tuning)'> <<WLS Kernel>> <> <> <1222202575662> <BEA-101107> <[[email protected] - appName: 'ControlPanelEAR', name: 'ControlPanelWeb', context-path: '/Web'] Problem occurred while serving the error page. 
javax.servlet.ServletException: viewId:/error.xhtml - View /error.xhtml could not be restored. 
    at javax.faces.webapp.FacesServlet.service(FacesServlet.java:249) 
    at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:226) 
    at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:124) 
    at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:283) 
    at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:175) 
    at weblogic.servlet.internal.RequestDispatcherImpl.invokeServlet(RequestDispatcherImpl.java:525) 
    at weblogic.servlet.internal.RequestDispatcherImpl.forward(RequestDispatcherImpl.java:261) 
    at weblogic.servlet.internal.ForwardAction.run(ForwardAction.java:22) 
    at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321) 
    at weblogic.security.service.SecurityManager.runAs(Unknown Source) 
    at weblogic.servlet.internal.ErrorManager.handleException(ErrorManager.java:144) 
    at weblogic.servlet.internal.WebAppServletContext.handleThrowableFromInvocation(WebAppServletContext.java:2201) 
    at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2053) 
    at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1366) 
    at weblogic.work.ExecuteThread.execute(ExecuteThread.java:200) 
    at weblogic.work.ExecuteThread.run(ExecuteThread.java:172) 
javax.faces.application.ViewExpiredException: viewId:/error.xhtml - View /error.xhtml could not be restored. 
    at com.sun.faces.lifecycle.RestoreViewPhase.execute(RestoreViewPhase.java:180) 
    at com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:248) 
    at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:117) 
    at javax.faces.webapp.FacesServlet.service(FacesServlet.java:244) 
    at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:226) 
    at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:124) 

- 私のJSFバージョンを使用してMojarra 1.2_09richfaces 3.2.1.GAfacelets 1.1.13

希望いくつかの助け:(

  0

もう少し詳細を教えていただけますか?使用している実装とエラー処理システムの設定方法 23 9月. 082008-09-23 20:59:59

  0

この問題は再編集しました。見てください。 ;) 23 9月. 082008-09-23 21:20:56

2

私は、これは主に、あなたのJSFの実装に依存だと思う。私はいくつかが空白の画面を描画することを聞いた。

我々はスタックでエラー500年代を投げるでしょう使用していた1私があなたに与えることができる最良のアドバイスは、例外をキャッチしてエラーログに記録することです。後でデバッグするためのスタックトレースがあります。バックエンドのように何もできなかったメッセージについては、私たちはw ouldはFacesContextに致命的なメッセージを追加するだけで、画面に表示され、スタックトレースを記録します。

  0

答えをありがとう。実際には悲しいです。私たちがすでに従っていることをお勧めしますが、問題はまだ解決しています。 ポイントは、この動作を回避するために何でもキャッチしています。 : ありがとう。 23 9月. 082008-09-23 21:19:47

  0

よく私は、時々ページが読み込まれたblank.the原因が、bgアクティビティで自分のアプリケーションで開いているファイルが多すぎ、ファイルストリームがいくつかの場所で閉じられていないことがわかった 04 4月. 102010-04-04 15:23:11


1

今日私のerror.jspのページで同様の問題が修正されました。これはあなたのものとまったく同じではありませんが、同様の問題を抱えている場合は正しい方向に向けるかもしれません。私の問題は2つの異なるソースから来ているようだった。

最初に、エラーページによってキャッチされた例外をスローしていたサーブレットの一部に、message例外プロパティが設定されていませんでした。サーブレットはServletException(Throwable rootCause)コンストラクタを使用して例外をキャッチして再スローしていました。

第2に、エラーページ自体では、元の作者はnullだったので、スクリプトレットコードを使用してメッセージを解析しました。メッセージは失敗しました。私はNullPointerExceptionを「エラーページの提供中に問題が発生しました」というメッセージとともに、エラーログに記録していました。

これら2つのものを組み合わせて、元の例外をスローしていたサーブレットのURLに空白のページを表示します。 ServletException(String message, Throwable rootCause)コンストラクタを使用してサーブレットで例外を再現したときに私自身のエラーメッセージを提供することで問題を解決しました。エラーメッセージはnullになりません。また、スクリプトレットコードの代わりにELを使用してerror.jspページを書き直しましたが、それは厳密には必要ではありませんでした。

  0

Nice!Thanks man。 18 2月. 112011-02-18 13:58:56


-1

JSF 2の空白ページの場合は、ExceptionHandlerWrapper.handleまたはこのメソッドをオーバーライドするクラスにブレークポイントを配置します。私の場合、それはあまりにも制限されたカスタムコードによるもので、エラーは記録されませんでした。

  0

JSF 2ではなく1.2.09です。 04 1月. 132013-01-04 15:34:52

  0

2012年にJSF 2を使用している可能性があります。とにかくdownvoteのおかげで... 07 1月. 132013-01-07 15:33:10