2012-06-11 3 views
0

한 페이지에서 다른 페이지로 이동할 때 NullPointerException이 발생합니다. faces-config.xml에서 평소와 같이 탐색 규칙을 정의했습니다.JSF 탐색 중 (MyFaces) NullPointerException이 발생했습니다.

하지만 내 웹 응용 프로그램이 다음 페이지로 이동하지 않습니다. 현재 페이지에 머무르며 무한 루프의 스택 오류 메시지처럼 보입니다. 이런 곳

SEVERE: Servlet.service() for servlet Faces Servlet threw exception 
java.lang.NullPointerException 
    at javax.faces.component.UIViewRoot.getViewMap(UIViewRoot.java:657) 
    at javax.faces.component.UIViewRoot.getViewMap(UIViewRoot.java:645) 
    at org.apache.myfaces.renderkit.ErrorPageWriter._writeVariables(ErrorPageWriter.java:574) 
    at org.apache.myfaces.renderkit.ErrorPageWriter.debugHtml(ErrorPageWriter.java:288) 
    at org.apache.myfaces.renderkit.ErrorPageWriter.debugHtml(ErrorPageWriter.java:250) 
    at org.apache.myfaces.renderkit.ErrorPageWriter.handleThrowable(ErrorPageWriter.java:417) 
    at org.apache.myfaces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:274) 
    at javax.faces.webapp.FacesServlet.service(FacesServlet.java:191) 
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290) 
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) 
    at org.apache.myfaces.webapp.filter.ExtensionsFilter.doFilter(ExtensionsFilter.java:349) 
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) 
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) 
    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:311) 
    at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:116) 
    at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:83) 
    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:323) 
    at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:113) 
    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:323) 
    at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:101) 
    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:323) 
    at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:113) 
    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:323) 
    at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:54) 
    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:323) 
    at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:45) 
    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:323) 
    at org.springframework.security.web.authentication.www.BasicAuthenticationFilter.doFilter(BasicAuthenticationFilter.java:150) 
    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:323) 
    at org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:182) 
    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:323) 
    at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:105) 
    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:323) 
    at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:87) 
    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:323) 
    at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:173) 
    at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:346) 
    at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:259) 
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) 
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) 
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233) 
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191) 
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127) 
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) 
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) 
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298) 
    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:859) 
    at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588) 
    at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489) 
    at java.lang.Thread.run(Thread.java:662) 

내가 다른 포럼 스레드를 읽고, 그들은 (은 web.xml에) 포함 언급 :

내가 이클립스 콘솔에서 얻을 오류 스택은

<context-param> 
    <param-name>javax.faces.DEFAULT_SUFFIX</param-name> 
    <param-value>.jsp</param-value> 
</context-param> 

나는 이미 이것을했지만 행운은 없다. 필자는 이전에 다른 JSF 프로젝트에서 작업 해 왔으며 문제없이 페이지 탐색을 구현했습니다. 그래서 내 탐색 규칙에 문제가 있다고 생각하지 않습니다.

이동하려는 페이지를 "login.jsp"라고합니다. 탐색 규칙은 다음과 같습니다.

<navigation-rule> 
    <display-name>Global Rule to Login Page</display-name> 
    <navigation-case> 
     <from-outcome>login</from-outcome> 
     <to-view-id>/login.jsf</to-view-id> 
    </navigation-case> 
</navigation-rule> 

감사의 말을 전합니다.

많은 감사, 글렌

+0

미안 해요, 문제를 파악하고, 완전히 내 문제를 업데이트하는 것을 잊었다. 문제는 JSF 환경 외부에있는 페이지 (index.html)에서 jsp로 이동하려고했기 때문입니다. 그래서 URL을 "index.html"의 내용을 옮긴 곳 대신 별도의 "index.jsf"페이지로 리다이렉트함으로써 수정했습니다. 위의 내용이 다시 변경되어 리디렉션의 필요성이 제거되었지만 이것이 문제의 원인이었습니다. 나는 그것이 누구든지 같은 문제에 걸리는 데 도움이되기를 바랍니다. –

답변

0

가 던진 몇 가지 예외는과에서 MyFaces는 해당 오류 페이지를 렌더링 할 준비를 것 같습니다. NullPointerException은 오류 페이지 렌더링 중에 발생합니다. 원래 오류가 어떻게 든 숨겨져있는 것처럼 보입니다.

당신은 어떻게 든 근본 원인에 도착 있는지 확인하기 위해 처리에서 MyFaces 오류를 해제을 시도 할 수 있습니다 :

<context-param> 
    <param-name>org.apache.myfaces.ERROR_HANDLING</param-name> 
    <param-value>false</param-value> 
</context-param> 
+0

안녕하세요, chkal, 제안 주셔서 감사합니다. 이 단계에서 webapp에 대한 오류 페이지가 설정되지 않았습니다. –

관련 문제