ViewExpiredException in periodically updated view

0

Good morning. I have a periodically updated view that throws the following exception:

Nov 03, 2015 11:21:49 AM com.sun.faces.context.AjaxExceptionHandlerImpl handlePartialResponseError
GRAVE: javax.faces.application.ViewExpiredException: viewId:/restrito/principal.xhtml - A exibição de /restrito/principal.xhtml não pôde ser restaurada.
    at com.sun.faces.lifecycle.RestoreViewPhase.execute(RestoreViewPhase.java:210)
    at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)
    at com.sun.faces.lifecycle.RestoreViewPhase.doPhase(RestoreViewPhase.java:121)
    at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:198)
    at javax.faces.webapp.FacesServlet.service(FacesServlet.java:646)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
    at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
    at br.com.hidros.control.filter.PageFilter.doFilter(PageFilter.java:38)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:220)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122)
    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:505)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:170)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
    at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:956)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:423)
    at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1079)
    at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:625)
    at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:318)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
    at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
    at java.lang.Thread.run(Unknown Source)

View

<?xml version="1.0" encoding="ISO-8859-1"?>  
<ui:composition 
    xmlns="http://www.w3.org/1999/xhtml"
    xmlns:ui="http://java.sun.com/jsf/facelets"
    xmlns:f="http://java.sun.com/jsf/core"
    xmlns:p="http://primefaces.org/ui" 
    xmlns:h="http://java.sun.com/jsf/html"
    template="/resources/template/template_restrito.xhtml">

    <ui:define name="css">
        <h:outputStylesheet library="css" name="restrito.css"/>
    </ui:define>

    <ui:define name="content">
        <div id="content">       

            <h:form id="form">      
               <br />
               <center><h:outputLabel value="Tela do Gestor" class="titlePrincipal" /></center>

               <p:poll interval="#{controleBean.ciclo}" update="refreshArea" />
               <p:panel id="refreshArea" style="border:0px;">
                    <ui:repeat var="abr" value="#{controleBean.auxiliarbr}" varStatus="status">
                        <p:panel class="containerBomba" title="Descrição" id="desc">
                            <div class="reservatorio reservatorio#{controleBean.verificarNivelReservatorio()}" title="Reservatório">
                                <h:outputText value="#{abr.reservatorio.nomeReservatorio}" />
                                <h:outputText value="(#{controleBean.verificarNivelReservatorio()}%)" rendered="#{!controleBean.verificarNivelReservatorio().equalsIgnoreCase('defeito')}" />
                            </div>

                            <ui:repeat var="b" value="#{abr.bombas}" varStatus="status2">
                                <div class="bomba bomba#{controleBean.verificarEstadoBomba(b)}" title="Bomba">
                                    <h:outputText value="#{b.nomeBomba}" />
                                </div> 
                            </ui:repeat>
                        </p:panel>                      

                        <p:overlayPanel id="panel" for="desc" showEffect="blind" tableStyle="width:auto"
                            hideEffect="explode" showEvent="mouseover" onShow="#{controleBean.prepararPreview(status.index)}"
                            hideEvent="mousedown" dismissable="false" showCloseIcon="true" style="width:17%;">

                            <p:panelGrid styleClass="semBorda">
                                <p:row><p:column><h:outputText style="font-size:70%" value="Reservatório: #{controleBean.abr.reservatorio.nomeReservatorio}" /></p:column></p:row>
                                <p:row><p:column><h:outputText style="font-size:70%" value="Capacidade: #{controleBean.abr.reservatorio.capacidadeReservatorio} Lts." /></p:column></p:row>
                                <p:row><p:column><h:outputText style="font-size:70%" value="Tipo: #{controleBean.abr.reservatorio.tipoReservatorio}" /></p:column></p:row>
                                <p:row><p:column><h:outputText style="font-size:70%" value="Volume Atual: #{controleBean.abr.volumeAtual} Lts." /></p:column></p:row>
                                <p:row><p:column><h:outputText style="font-size:70%" value="Temperatura da Placa: 20°C" /></p:column></p:row>

                                <p:row><p:column/></p:row>                              

                                <p:row> <p:column>                              
                                    <p:dataTable var="b" style="font-size:70%;"
                                        value="#{controleBean.abr.bombas}"
                                        rows="4" emptyMessage="Nenhuma Bomba conectada">

                                        <p:column headerText="Nome" style="font-size:70%;">
                                            <h:outputText value="#{b.nomeBomba}" style="font-size:100%;"/>
                                        </p:column>

                                        <p:column headerText="Status" style="font-size:70%;">
                                            <h:outputText value="#{controleBean.verificarEstadoBomba(b)}" style="font-size:100%;"/>
                                        </p:column>                 
                                    </p:dataTable>
                                </p:column> </p:row>
                            </p:panelGrid>
                        </p:overlayPanel>
                    </ui:repeat>
                </p:panel>              
            </h:form>
        </div>
    </ui:define>            
</ui:composition>

In this view I have a <p:poll/> that updates my refreshArea in cycle second intervals (cycle = 5 in my ManagedBean).

I searched a lot and found a link from DevMedia teaching how to work with Session and Filter, implemented based on example , but it did not help much.

    
asked by anonymous 03.11.2015 / 15:33

0 answers