我使用a4j:poll来保持会话活着但是在一些空闲时间后我得到了#34; View无法恢复"错误。我相信民意调查是在背景中创建视图,在达到15(?)极限后会抛出异常。
<h:form>
<a4j:poll id="poll" interval="30000"/>
</h:form>
的web.xml:
<session-config>
<session-timeout>1</session-timeout>
<cookie-config>
<secure>true</secure>
</cookie-config>
<tracking-mode>COOKIE</tracking-mode>
</session-config>
BalusC说:
&#34;因此,只有当您手动将限制方式设置得太低,或者您在后台不断创建新视图时(例如,通过严格执行的投票),才会发生这种情况。&#34;
在:javax.faces.application.ViewExpiredException: View could not be restored
我认为这是我的问题,但我没有办法如何做到正确:(
答案 0 :(得分:1)
您确定这是重现问题的完整方案吗? 在这种情况下,问题是您设置为1秒的会话超时。 如果不是您的情况,请编辑您的问题。
我发现的另一个问题是a4j:在多部分表单中进行轮询。
<h:form enctype="multipart/form-data">
<a4j:poll id="poll" interval="30000"/>
</h:form>
避免这种情况,它会在每个轮询请求中创建一个新的视图ID。
在每个ajax请求上返回一个View ID,只要View ID始终相同,就可以了。如果您在每个请求中都获得了新的视图ID,那么页面中的ajax请求就会出现问题。