2012-09-20 104 views
0

进出口使用丰富:文件上传:丰富:文件上传ViewExpiredException

<rich:fileUpload id="upload" addLabel="Add File" 
     clearAllLabel="Delete Files" deleteLabel="Remove" 
     uploadLabel="Process Fle" doneLabel="Processed file" 
     clearLabel="Close" listHeight="100" 
     maxFilesQuantity="1" fileUploadListener="#{mbean.listener}" > 
     <a4j:ajax event="uploadcomplete" execute="@none" render="panelResult" /> 
</rich:fileUpload> 

在mbean.listener的Java代码运行正常,但是当过程结束,以下错误显示:

09:03:49,385 ERROR [br.com.enterprise.enterprisex.faces.common.EnterpriseExceptionHandler] EnterpriseExceptionHandler.handle: 
javax.faces.application.ViewExpiredException: /1_ProcessForm.jsfNo saved view state could be found for the view identifier: /1_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) 

mbean.listener:

public void listener(FileUploadEvent event) throws Exception { 
    UploadedFile item = event.getUploadedFile(); 
    LOGGER.debug("upload listener: fileName=" + item.getName());   
} 

此错误只发生在richfaces的这个组件中。有必要做一些额外的配置?

谢谢。

+0

请在此粘贴文件上传监听器。 – kolossus

+0

@kolossus,我编辑问题并添加监听器。代码是可以的。谢谢。 – vctlzac

回答

0

你认识那条路吗/1_ProcessForm.jsf?上下文在这个位上窒息,很可能是因为该路径不存在。这个路径是否与你正在进行文件上传的页面的视图ID完全一致(包括前导斜杠'/')

编辑:显然a bug with RF 4.0可能是由于此。让我们知道你是如何处理这个问题的

+0

路径没问题。当配置javax.faces.STATE_SAVING_METHOD是“服务器”这个组件运行正常,但我需要的是“客户端”,因为其他原因:http://stackoverflow.com/questions/12370904/jsf-2-0-richfaces-viewexpiredexception – vctlzac

+0

这似乎是一个[bug](https://community.jboss.org/message/619183)与射频。抱歉。编辑答案以反映研究 – kolossus

+0

感谢您的回答。我看到它:https://community.jboss.org/thread/164999然后我将我的mbean从ViewScoped更改为SessionScoped并解决了问题,但我相信这不是理想的解决方案,因为此mbean应该是viewScoped。 – vctlzac