- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个使用rich:fileUpload 上传文件的页面。对于较小的文件,这可以正常工作,但是对于较大的文件 (+80MB),我通常会收到 ViewExpiredException。我已经尝试寻找解决方案,但我没有找到任何解决此问题的方法。
@Component
@Scope("request")
public class Bean {
...
}
<?xml version="1.0" encoding="UTF-8" ?>
<jsp:root omit-xml-declaration="true"
xmlns:jsp="http://java.sun.com/JSP/Page"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:t="http://myfaces.apache.org/tomahawk"
xmlns:a4j="https://ajax4jsf.dev.java.net/ajax"
xmlns:rich="http://richfaces.ajax4jsf.org/rich"
xmlns:ui="http://java.sun.com/jsf/facelets" version="2.0">
<rich:panel styleClass="formPanel">
<h:form id="docForm">
<ui:param name="doc" value="#{pb.newDoc}" />
<h:panelGrid columns="2" columnClasses="formTableLabel, formTableField">
...
<h:outputLabel for="fileUpload" value="#{labels['file']}*" />
<h:panelGroup>
<rich:fileUpload required="true" ajaxSingle="true"
fileUploadListener="#{pb.uploadDocument}" id="fileUpload"
autoclear="false" immediateUpload="true" noDuplicate="true"
addControlLabel="#{labels['browse']}">
<a4j:support event="onclear" reRender="fileUpload" ajaxSingle="true"
oncomplete="$('docForm:fileUpload').component.currentInput.enable()"/>
</rich:fileUpload>
<h:message for="fileUpload" styleClass="errorMessage"
showDetail="false" showSummary="true" />
</h:panelGroup>
...
...
<context-param>
<param-name>javax.faces.STATE_SAVING_METHOD</param-name>
<param-value>server</param-value>
</context-param>
<context-param>
<param-name>facelets.SKIP_COMMENTS</param-name>
<param-value>true</param-value>
</context-param>
<context-param>
<param-name>facelets.BUFFER_SIZE</param-name>
<param-value>500000</param-value>
</context-param>
<context-param>
<param-name>org.richfaces.LoadScriptStrategy</param-name>
<param-value>ALL</param-value>
</context-param>
<context-param>
<param-name>org.richfaces.LoadStyleStrategy</param-name>
<param-value>ALL</param-value>
</context-param>
<context-param>
<param-name>javax.faces.DEFAULT_SUFFIX</param-name>
<param-value>.jspx</param-value>
</context-param>
<context-param>
<description>
Context parameter specifically for facelets, lists available tag libraries.
</description>
<param-name>facelets.LIBRARIES</param-name>
<param-value>
/WEB-INF/taglibs/authorization.taglib.xml;
/WEB-INF/taglibs/taskscreen.taglib.xml
</param-value>
</context-param>
<context-param>
<param-name>javax.faces.CONFIG_FILES</param-name>
<param-value>/WEB-INF/config/faces-config.xml</param-value>
</context-param>
<context-param>
<param-name>org.ajax4jsf.VIEW_HANDLERS</param-name>
<param-value>com.sun.facelets.FaceletViewHandler</param-value>
</context-param>
<filter>
<display-name>RichFaces Filter</display-name>
<filter-name>richfaces</filter-name>
<filter-class>org.ajax4jsf.Filter</filter-class>
<init-param>
<param-name>forceparser</param-name>
<param-value>false</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>Pretty Filter</filter-name>
<servlet-name>Faces Servlet</servlet-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>richfaces</filter-name>
<servlet-name>FacesServlet</servlet-name>
<dispatcher>REQUEST</dispatcher>
<dispatcher>FORWARD</dispatcher>
<dispatcher>INCLUDE</dispatcher>
</filter-mapping>
<welcome-file-list>
<welcome-file>start/start.jspx</welcome-file>
</welcome-file-list>
<error-page>
<error-code>500</error-code>
<location>/error.jspx</location>
</error-page>
<error-page>
<error-code>403</error-code>
<location>/access-denied.jspx</location>
</error-page>
<error-page>
<exception-type>javax.faces.application.ViewExpiredException</exception-type>
<location>/expired.jsf</location>
</error-page>
<session-config>
<session-timeout>30</session-timeout>
</session-config>
...
SEVERE: JSF1054: (Phase ID: RESTORE_VIEW 1, View ID: ) Exception thrown during phase execution: javax.faces.event.PhaseEvent[source=com.sun.faces.lifecycle.LifecycleImpl@22075431]
2012-09-13 16:43:46,945 [qtp130437654-18] ERROR org.ajax4jsf.webapp.BaseXMLFilter doXmlFilter - Exception in the filter chain
javax.servlet.ServletException: viewId:/data/includes/doc.jspx - View /data/includes/doc.jspx could not be restored.
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:270)
at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:521)
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1207)
at org.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:206)
at org.ajax4jsf.webapp.BaseFilter.handleRequest(BaseFilter.java:290)
at org.ajax4jsf.webapp.BaseFilter.processUploadsAndHandleRequest(BaseFilter.java:367)
at org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:515)
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1178)
at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:433)
at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:118)
at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:490)
at org.eclipse.jetty.server.session.SessionHandler.handle(SessionHandler.java:179)
at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:928)
at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:370)
at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:862)
at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:116)
at org.eclipse.jetty.server.Dispatcher.forward(Dispatcher.java:331)
at org.eclipse.jetty.server.Dispatcher.forward(Dispatcher.java:115)
at com.ocpsoft.pretty.PrettyFilter.doFilter(PrettyFilter.java:64)
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1178)
at org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:378)
at org.springframework.security.intercept.web.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:109)
at org.springframework.security.intercept.web.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:83)
at org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:390)
at org.springframework.security.ui.SessionFixationProtectionFilter.doFilterHttp(SessionFixationProtectionFilter.java:67)
at org.springframework.security.ui.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:53)
at org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:390)
at org.springframework.security.ui.ExceptionTranslationFilter.doFilterHttp(ExceptionTranslationFilter.java:101)
at org.springframework.security.ui.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:53)
at org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:390)
at org.springframework.security.wrapper.SecurityContextHolderAwareRequestFilter.doFilterHttp(SecurityContextHolderAwareRequestFilter.java:91)
at org.springframework.security.ui.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:53)
at org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:390)
at org.springframework.security.ui.AbstractProcessingFilter.doFilterHttp(AbstractProcessingFilter.java:278)
at org.springframework.security.ui.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:53)
at org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:390)
at org.jasig.cas.client.session.SingleSignOutFilter.doFilter(SingleSignOutFilter.java:110)
at org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:390)
at org.springframework.security.ui.logout.LogoutFilter.doFilterHttp(LogoutFilter.java:89)
at org.springframework.security.ui.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:53)
at org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:390)
at org.springframework.security.context.HttpSessionContextIntegrationFilter.doFilterHttp(HttpSessionContextIntegrationFilter.java:235)
at org.springframework.security.ui.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:53)
at org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:390)
at org.springframework.security.util.FilterChainProxy.doFilter(FilterChainProxy.java:175)
at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:236)
at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:167)
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1178)
at com.doc.filter.IEFilter.doFilter(IEFilter.java:33)
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1178)
at com.doc.portal.filter.ExceptionRedirectFilter.doFilter(ExceptionRedirectFilter.java:28)
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1178)
at org.jasig.cas.client.session.SingleSignOutFilter.doFilter(SingleSignOutFilter.java:110)
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1178)
at com.doc.filter.UTF8Filter.doFilter(UTF8Filter.java:20)
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1178)
at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:433)
at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:118)
at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:456)
at org.eclipse.jetty.server.session.SessionHandler.handle(SessionHandler.java:179)
at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:928)
at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:370)
at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:862)
at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:116)
at org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:126)
at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:115)
at org.eclipse.jetty.server.Server.handle(Server.java:330)
at org.eclipse.jetty.server.HttpConnection.handleRequest(HttpConnection.java:557)
at org.eclipse.jetty.server.HttpConnection$RequestHandler.content(HttpConnection.java:947)
at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:736)
at org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:203)
at org.eclipse.jetty.server.HttpConnection.handle(HttpConnection.java:413)
at org.eclipse.jetty.server.bio.SocketConnector$Connection.run(SocketConnector.java:229)
at org.eclipse.jetty.server.ssl.SslSocketConnector$SslConnection.run(SslSocketConnector.java:648)
at org.eclipse.jetty.util.thread.QueuedThreadPool$2.run(QueuedThreadPool.java:435)
at java.lang.Thread.run(Thread.java:662)
Caused by: javax.faces.application.ViewExpiredException: viewId:/data/includes/doc.jspx - View /data/includes/doc.jspx could not be restored.
at com.sun.faces.lifecycle.RestoreViewPhase.execute(RestoreViewPhase.java:189)
at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:100)
at com.sun.faces.lifecycle.RestoreViewPhase.doPhase(RestoreViewPhase.java:102)
at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:118)
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:265)
... 75 more
最佳答案
这可能不是您想听到的,但标准 HTTP 协议(protocol)在上传大文件时效果不佳。通常在对等套接字应用程序中,客户端和服务器都可以保持连接健康并在大传输期间保持一切 Activity 。然而,对于 HTTP 和 Web,客户端通常唯一有状态的就是它的 cookie。客户端无法知道它的 cookie 是否仍然有效(更正:除非它们被明确设置为在特定日期过期),直到将它们提供给服务器并得到带有结果的响应。
因此,正因为如此,服务器需要对 session 的生命周期强加一个时间线,并且在该时间过去之后,它会为 session 折腾状态信息。由于典型的 Internet 连接的上传速度往往比下载速度稍慢,而且在等待大文件上传时 session 失效并不罕见。
你有三个选择:
关于java - Richfaces 文件上传 ViewExpiredException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12421610/
非常简单: }" ajaxSingle="true"> 那显然是无效的EL。我以这种方式有条件地显示 myModelPanel 的最简洁方法是什么? 谢谢 IA 最佳
我正在尝试使用 simple demo来自 richfaces progressBar 页面。 当我转到页面时,它呈现开始按钮,按下按钮后进度条显示为 0% - 而不是计数到 100 显示 -1 就是
我目前正在处理一个项目,我想将其从 3.3.3.Final 版本迁移到 RichFaces 4。我想知道... 在迁移之前有什么我应该考虑、了解或考虑的重要事项吗? (可能是一个愚蠢的问题,但是...
就目前而言,这个问题不适合我们的问答形式。我们希望答案得到事实、引用资料或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visit the
很抱歉问题标题,但我想不出更好的标题。 我正在使用 JSF 2.0 (MyFaces 2.0.2) 并将 RichFaces 4 (4.0.0.20101004-M3) 添加到我的项目中。我找到了一个
我们正在从 RichFaces 3.3.3 升级到 RichFaces 4.2.0。似乎元素 css 类名称已更改,但我找不到新旧名称之间的任何映射。我们的元素中有很多用于丰富组件的自定义 css 规
什么是limitToList在 JSF 中,RichFaces?它在 RichFaces 4.x 中被删除了吗?是 limitToList和 limitRender一样吗? 最佳答案 limitRen
我尝试运行 RichFaces 4.3.1 Final 的 richfaces-showcase。当我按照 readme.txt 的指示执行命令“mvn clean package”时,出现 Mave
我正在将 JSF 2 和 richfaces 3.3.3 用于托管在 tomcat 6.0.20 上的应用程序。一旦通过浏览器(Mozilla 和 IE)发出请求,应用程序就会崩溃。 我的 web.x
最近我尝试将我的应用程序从 RF-4.1.0.Final 升级到 RF-4.3.2.Final。 我使用的应用服务器是Tomcat-7,项目是使用Maven构建的。 我遇到的一些问题: 1.在Rich
我正在将 JSF 1.2 升级到 JSF 2.x。在这个过程中,我想将应用程序中的每个页面都一个一个地升级。我已经设置了每个依赖项和配置。 RichFaces 4.x 和 PrimeFaces 3.5
简单的 JSF1.2 和 Jboss Server 5.0 工作正常,但添加 Richfaces 3.X JAR 后出现错误。我的应用程序无法运行。 Richfaces jar richfaces-a
好的,这里有点奇怪,我没有看到任何其他报告,最近我们有一些IE11用户报告了UI错误,经过一些测试之后,我意识到执行reRender(我正在使用A4J)后IE11正在放HTML元素放置在错误的位置,例
我的问题是让 RichFaces 日历限制允许选择的日期 由用户。 假设我只想允许用户选择本月的日期和下个月的日期。 我使用了 preloadDateRangeStart 和 preloadDateR
我知道这里有很多关于 JSF 分页的帖子,但没有一个让我满意。 要将相当大的数据拆分成页面,我将使用 RichFaces Data 滚动组件。 它似乎适合这种情况,但它看起来像是“人工”分页。 我不喜
我有一个 h:inputText 和一个 rich:fileUpload。我希望 inputText 在单击时调用 fileUpload。我该怎么做呢?现在,我有这个:
您能告诉我如何找出我正在运行的 Richfaces 版本吗? 我需要知道我是否已经安装了 jQuery,所以也许一种测试方法也可以作为答案。 我正在使用 JBOSS Developer Studio
我有: 我创建了一个具有以下值的组合框: - 测试 - 示例 - 示例 - 洛雷姆·伊普苏姆 在组合框中键入字母/字母组合将触发组件建议以输入文本/组合开头的值。 期望的输出: 强制组合框建议包含输入
我很努力地解决这个问题,但没有找到解决方案。 我只是不想为一个且仅有一个 HTML 页面启用 Richfaces。 为什么?因为我只在一个页面上使用 RichFaces。此外,由于我不使用 JavaS
我使用的是richfaces 3.3我希望我的用户能够在服务器上指定可以保存文件的位置。我该怎么做? 最佳答案 使用任何上传组件 使用额外的组件(trie-view)来表示服务器上的结构 提交时,获取
我是一名优秀的程序员,十分优秀!