Não aguento mais esse erro no Log

48 views
Skip to first unread message

Diogo Soares

unread,
Apr 5, 2012, 8:32:56 AM4/5/12
to jav...@googlegroups.com
Galera a meses vem se repetindo esse erro e de maneira nenhuma consigo resolver, já postei em um tópico anterior e nada, a aplicação não trava mais o log fica lotado com esse erro de minuto em minuto, alguém poderia me dar uma luz...


javax.faces.application.ViewExpiredException: viewId:/monitor.xhtml - A exibição de /monitor.xhtml não pôde ser restaurada.
at com.sun.faces.lifecycle.RestoreViewPhase.execute(RestoreViewPhase.java:212)
at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)
at com.sun.faces.lifecycle.RestoreViewPhase.doPhase(RestoreViewPhase.java:110)
at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:118)
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:312)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:304)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:224)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:169)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:168)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:929)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:405)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:964)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:515)
at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:302)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at java.lang.Thread.run(Thread.java:662)
javax.faces.application.ViewExpiredException: viewId:/monitor.xhtml - A exibição de /monitor.xhtml não pôde ser restaurada.
at com.sun.faces.lifecycle.RestoreViewPhase.execute(RestoreViewPhase.java:212)
at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)
at com.sun.faces.lifecycle.RestoreViewPhase.doPhase(RestoreViewPhase.java:110)
at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:118)
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:312)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:304)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:224)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:169)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:168)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:929)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:405)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:964)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:515)
at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:302)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at java.lang.Thread.run(Thread.java:662)


marciomarconi

unread,
Apr 5, 2012, 9:47:11 AM4/5/12
to javasf: JavaServer Faces Group
Poder ser que a sessão esteja expirando e a arvore de componentes não
pode ser restaurada.

On 5 abr, 09:32, Diogo Soares <diogo.soa...@isdra.com.br> wrote:
> Galera a meses vem se repetindo esse erro e de maneira nenhuma consigo resolver, já postei em um tópico anterior e nada, a aplicação não trava mais o log fica lotado com esse erro de minuto em minuto, alguém poderia me dar uma luz...
>
> javax.faces.application.ViewExpiredException: viewId:/monitor.xhtml - A exibição de /monitor.xhtml não pôde ser restaurada.
>         at com.sun.faces.lifecycle.RestoreViewPhase.execute(RestoreViewPhase.java:212)
>         at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)
>         at com.sun.faces.lifecycle.RestoreViewPhase.doPhase(RestoreViewPhase.java:110)
>         at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:118)
>         at javax.faces.webapp.FacesServlet.service(FacesServlet.java:312)
>         at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Applicatio nFilterChain.java:304)
>         at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterC hain.java:210)
>         at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.j ava:224)
>         at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.j ava:169)
>         at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBas e.java:472)
>         at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:16 8)
>         at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:10 0)
>         at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:929)
>         at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.jav a:118)
>         at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:405)
>         at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Proc essor.java:964)
>         at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(Abstra ctProtocol.java:515)
>         at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java :302)
>         at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.j ava:886)
>         at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java: 908)
>         at java.lang.Thread.run(Thread.java:662)
> javax.faces.application.ViewExpiredException: viewId:/monitor.xhtml - A exibição de /monitor.xhtml não pôde ser restaurada.
>         at com.sun.faces.lifecycle.RestoreViewPhase.execute(RestoreViewPhase.java:212)
>         at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)
>         at com.sun.faces.lifecycle.RestoreViewPhase.doPhase(RestoreViewPhase.java:110)
>         at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:118)
>         at javax.faces.webapp.FacesServlet.service(FacesServlet.java:312)
>         at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Applicatio nFilterChain.java:304)
>         at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterC hain.java:210)
>         at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.j ava:224)
>         at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.j ava:169)
>         at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBas e.java:472)
>         at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:16 8)
>         at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:10 0)
>         at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:929)
>         at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.jav a:118)
>         at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:405)
>         at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Proc essor.java:964)
>         at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(Abstra ctProtocol.java:515)
>         at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java :302)
>         at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.j ava:886)

Diogo Soares

unread,
Apr 5, 2012, 9:51:55 AM4/5/12
to jav...@googlegroups.com

E como eu poderia resolver isso?

----- Mensagem original -----
De: "marciomarconi" <marcio...@gmail.com>
Para: "javasf: JavaServer Faces Group" <jav...@googlegroups.com>
Enviadas: Quinta-feira, 5 de Abril de 2012 10:47:11
Assunto: [javasf] Re: Não aguento mais esse erro no Log

--
Você recebeu esta mensagem por que é membro do Javasf
http://groups.google.com/group/javasf

Conheça também o Java Brazil: http://groups.google.com/group/thejavabrazil

Walter Mourão

unread,
Apr 5, 2012, 9:53:16 AM4/5/12
to jav...@googlegroups.com
por acaso esse "monitor.xhtml" é chamado de tempos em tempos por um componente (ou javascript) ? me parece que a página do usuário continua aberta e chamadno esse monitor depois que ele já fez logout (ou expirou a sessão). Se for isso mesmo... é questão de trabalhar a lógica da aplicação. Se não for, dê mais detalhes.

Walter Mourão
http://waltermourao.com.br
http://arcadian.com.br
http://oriens.com.br

Hedley Luna

unread,
Apr 5, 2012, 10:01:04 AM4/5/12
to jav...@googlegroups.com
Isso acontece quando expira a sessão e a árvore não pode ser restaurada com o disse o @MarcioMarconi, faz um filter ou implementa um listener(que eu não me lembro qual é) que resolve, creio eu.
Hedley Luna
Oracle Certified Java Programmer 6
Graduando Ciência da Computação - UECE
Laboratório de Computação Científica - LCC - UECE
Instituto Orion de Ciência e Tecnologia

Rafael Ponte

unread,
Apr 5, 2012, 10:04:23 AM4/5/12
to jav...@googlegroups.com
A maneira mais simples de resolver isso é mudando o state_saving_method para "client". Vale salientar que ser a mais simples não implica em ser a melhor para o seu caso.

2012/4/5 Hedley Luna <hedle...@gmail.com>



--
Rafael Ponte
http://www.triadworks.com.br

Everton Fujimoto

unread,
Apr 5, 2012, 10:16:18 AM4/5/12
to jav...@googlegroups.com
Dá uma estudada no View State Saving Method, mas a solução mais simples é a que o Rafael Ponte falou. 

Existe também uma outra solução simples:


<context-param>
<param-name>com.sun.faces.enableRestoreView11Compatibility</param-name>
<param-value>true</param-value>
</context-param>

Segundo a documentação:

enableRestoreView11Compatibility

Como o JSF 1.2 é suportado, um aplicativo JSF 1.2, sob carga, poderá criar a exceção ViewExpiredException. Se a sua visualização não for encontrada na sessão, você poderá utilizar um modo de compatibilidade no JSF para criar uma nova visualização. Isso pode ter comportamentos adversos, porque se trata de uma visualização nova, e os itens que normalmente estão na visualização, como o estado, não estarão mais lá. Utilize o seguinte código como exemplo para configurar o parâmetro de contexto com.sun.faces.enableRestoreView11Compatibility como true no arquivo web.xml.


Att.
Everton William Fujimoto
Hecate Systems
CIO
(47)3394-5516
(47)9947-5481

Diogo Soares

unread,
Apr 5, 2012, 10:30:40 AM4/5/12
to jav...@googlegroups.com

Eu utilizo o jsf 2 com primefaces 2 - sim o monitor.xhtml é atualizado a cada minuto pelo <p:poll e quem chama ele é uma aplicação em vraptor de fora passando a url

<a target="_blank" href="http://100.100.100.123/chamados/monitor.xhtml">Monitor</a>

----- Mensagem original -----
De: "Everton Fujimoto" <evert...@gmail.com>
Para: jav...@googlegroups.com
Enviadas: Quinta-feira, 5 de Abril de 2012 11:16:18
Assunto: Re: [javasf] Re: Não aguento mais esse erro no Log

Rafael Ponte

unread,
Apr 5, 2012, 10:29:57 AM4/5/12
to jav...@googlegroups.com
Não conhecia esse parâmetro de contexto, contudo ele é bem arriscado, já que pode exibir uma página com estado inválido.

Normalmente o ViewExperedException ocorre quando se está tentando submeter (via ajax ou não) uma formulário quando a session já expirou. Talvez seja melhor mandar o usuário relogar em vez de tentar processar a página.

2012/4/5 Everton Fujimoto <evert...@gmail.com>

Everton Fujimoto

unread,
Apr 5, 2012, 10:40:23 AM4/5/12
to jav...@googlegroups.com
Não é tão arriscado, se algo estiver na sessão do usuário, por exemplo, e essa sessão não existir mais, o que ele vai fazer é restaurar a árvore de componentes no servidor e iniciar uma nova sessão. 

O problema que poderia acontecer é quando a sessão (no caso de view saving state = server) expirar, e você modificou o xhtml, ele não conseguir montar a árvore de componentes corretamente.

O bom desse parâmetro é que você não perde o request que o usuário enviou quando geraria a view expired exception, ele faz a injeção nos beans normalmente e, caso não tenha acesso a algo pela sessão ter expirada, você pode tratar para ele ser redirecionado a página de login e, quando voltar para a página que ele enviou os dados, tudo estará preenchido.


Att.
Everton William Fujimoto
Hecate Systems
CIO
(47)3394-5516
(47)9947-5481



Reply all
Reply to author
Forward
0 new messages