ViewExpiredException:使用aj4:poll时无法恢复视图

时间:2016-03-29 15:53:12

标签: session jsf web.xml ajax4jsf

我使用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

我认为这是我的问题,但我没有办法如何做到正确:(

1 个答案:

答案 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请求就会出现问题。