【问题标题】:JSF 2.0 - Richfaces ViewExpiredExceptionJSF 2.0 - Richfaces ViewExpiredException
【发布时间】:2012-09-04 10:53:38
【问题描述】:

有时,当我与 Richfaces 的某些组件交互时(例如:单击 a4j:commandbutton),我会收到 ViewExpiredException 类型的异常。如果我在 ajax 请求期间进行交互(例如:在屏幕加载时),则会发生错误 ALWAYS

Ps 1:服务器没有重启

Ps 2:我使用的是 myfaces 2.1.8。

例外:

09:03:49,385 ERROR     [br.com.enterprise.enterprisex.faces.common.EnterpriseExceptionHandler]     EnterpriseExceptionHandler.handle: 
javax.faces.application.ViewExpiredException: /3_ProcessForm.jsfNo saved view state could be found for the view identifier: /3_ProcessForm.jsf
at org.apache.myfaces.lifecycle.RestoreViewExecutor.execute(RestoreViewExecutor.java:132)
at org.apache.myfaces.lifecycle.LifecycleImpl.executePhase(LifecycleImpl.java:170)
at org.apache.myfaces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:117)
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:197)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
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.authentication.rememberme.RememberMeAuthenticationFilter.doFilter(RememberMeAuthenticationFilter.java:146)
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:293)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:859)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:602)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
at java.lang.Thread.run(Thread.java:662)

有人知道这个问题的解决方案吗?

谢谢。

【问题讨论】:

  • HTTP 会话是否跨请求正确维护?
  • 我不知道这是否是问题,但有这样的配置:org.springframework.security.web.session.HttpSessionEventPublisher
  • 呃,没有。如果您已经不知道 HTTP 会话是如何工作的,那就没关系了。这些答案可能有助于更好地理解它:stackoverflow.com/questions/3106452/…stackoverflow.com/questions/3642919/…
  • 这个问题是在应用spring安全配置之前出现的。
  • @BalusC:我知道 HttpSession,但我的英语不好,抱歉。您的问题的答案是“是”,会话保持不变。我将 javax.faces.STATE_SAVING_METHOD 设置为客户端,问题就解决了。这最初解决了这个问题。我认为此更改将需要更多网络资源,并且正在检查这是否会给应用程序带来其他问题。如果愿意,请正式发布答案,以便我得分。谢谢。

标签: spring jakarta-ee jsf-2 richfaces


【解决方案1】:

我将 javax.faces.STATE_SAVING_METHOD 更改为客户端,在上述情况下不会出现此错误。谢谢。

【讨论】:

    猜你喜欢
    • 2011-10-05
    • 2011-04-21
    • 1970-01-01
    • 2011-03-29
    • 2011-01-08
    • 2011-09-03
    • 2011-10-25
    • 2014-09-05
    • 2011-02-28
    相关资源
    最近更新 更多