JSF의 빈 페이지


2

내 코드가 예외를 throw하면 가끔씩 - 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_09, richfaces 3.2.1.GAfacelets 1.1.13.

희망 도움 :(

  0

좀 더 자세히 알려 주시겠습니까? 사용중인 구현 및 오류 처리 시스템을 구성하는 방법 23 sep. 082008-09-23 20:59:59

  0

이 문제를 다시 편집했습니다. 이것을 봐주세요. ;) 23 sep. 082008-09-23 21:20:56

2

나는이 크게 당신의 JSF 구현에 따라 달라집니다 생각합니다. 좀 빈 화면을 렌더링 들었습니다.

우리가 스택 오류 500 년대를 슬로우 사용하던 하나 trace. 다른 시간 초과 버튼은 사용자에게 아무런 오류없이 작동하지 않습니다. 이것은 개발 단계에서 모두였습니다.

내가 줄 수있는 최선의 조언은 예외를 잡아서 오류 로그에 기록하는 것입니다. 당신은 나중에 디버깅을위한 스택 트레이스를 가지고 있습니다. 우리가 실패한 백엔드처럼 아무것도 할 수없는 메시지의 경우 ould는 FacesContext에 치명적인 메시지를 추가하여 화면에 표시되고 스택 추적을 기록합니다.

  0

답변 해 주셔서 감사합니다. 사실 그것은 슬프다. 우리가 이미 따라하고 있지만, 여전히 문제는 계속되고 있다는 좋은 추천입니다. 요점은이 동작을 피하기 위해 무엇이든 잡을 수 있습니다. : 감사합니다. 23 sep. 082008-09-23 21:19:47

  0

글쎄, 때로는 페이지가 blank.the 원인이 너무 많은 파일이 내 응용 프로그램에서 bg 활동에 열려있는 것으로 발견되었고 파일 스트림이 일부 장소에서 닫히지 않았던 것으로 나타났습니다. 04 apr. 102010-04-04 15:23:11


1

오늘 내 error.jsp 페이지에서 비슷한 문제가 수정되었습니다. 이것은 당신의 것과 정확히 같지는 않지만 비슷한 문제가 있다면 올바른 방향으로 누군가를 가리킬 수 있습니다. 내 문제는 두 가지 다른 출처에서 온 것 같았다.

먼저 오류 페이지에서 catch 한 예외를 던지는 일부 서블릿에서 message 예외 속성을 설정하지 않았습니다. 서블릿은 ServletException(Throwable rootCause) 생성자를 사용하여 예외를 포착하고 재실행했습니다.

둘째, 오류 페이지 자체에서 원래 작성자는 null 메시지가 있었기 때문에 스크립틀릿 코드를 사용하여 메시지를 구문 분석 한 후 String.split(message, ";"); 메시지를 보냈습니다. "오류 페이지를 제공하는 동안 문제가 발생했습니다."라는 메시지와 함께 내 오류 로그에 NullPointerException이 나타납니다.

원래 예외를 던지는 서블릿의 URL에서 빈 페이지를 제공하기 위해이 두 가지가 결합되었습니다. ServletException(String message, Throwable rootCause) 생성자를 사용하여 내 서블릿에서 예외를 다시 throw 할 때 내 자신의 오류 메시지를 제공하여 내 문제를 해결했습니다. 따라서 오류 메시지는 더 이상 null이 아닙니다. 또한 스크립틀릿 코드 대신 EL을 사용하여 error.jsp 페이지를 다시 작성했으나 꼭 필요한 것은 아닙니다.

  0

감사합니다. 18 feb. 112011-02-18 13:58:56


-1

JSF 2의 빈 페이지의 경우, ExceptionHandlerWrapper.handle 또는이 메소드를 대체하는 클래스에 중단 점을 두십시오. 내 경우에는 너무 제한적인 오류가 기록되지 않은 사용자 지정 코드 때문이었습니다.

  0

JSF 2가 아닌 1.2.09입니다. 04 jan. 132013-01-04 15:34:52

  0

2012 년에 JSF 2를 사용하고 있을지도 모르겠지만 검색 후 여기에 방문하는 사용자를 위해 작성했습니다. 이것이 JSF 2에 적용되는 것으로 지정된 이유입니다. 그러나 어쨌든 downvote 주셔서 감사합니다 ... 07 jan. 132013-01-07 15:33:10