ja tentei tbm fazer e trocar e aumentar tbm essas views tbm deu no mesmo
Não estou vendo a configuração para aumentar o número de views na sessão!
eu ja coloquei ele antes deu na mesma hj é esse xml atual que estou usando
Eu gostaria de ver como tu configurou o parâmetro pois todos os exemplos desta thread são para Myfaces e pelo que vi você está utilizando Mojarra.
isso bem lembrado pois ele usava myfaces e eu não uso-o. tem como usar sem usar myfaces?
outra coisa esse erro da mais quando eu mato a sessão com session.invalidate() (para sair da aplicação e ir para o login)será que por manter no modo server ele mata a sessão (estado) das view tbm?
É exatamente este o motivo! As views estão na sessão do usuário, quando você “mata” a sessão dele então todas as views em cache são destruídas juntas. A partir daí ao tentar disparar qualquer evento do Faces de uma página carregada antes do “session.invalidate()” você recebe essa exceção.
pois é… vou ter que matar então cada sessão criada por minha aplicação uma a uma
Normalmente ocorre um ViewExpiredException quando a sessão do usuário expirou ou quando ele está deslogado da aplicação e tenta acessar uma página cacheada pelo browser. Neste caso você poderia redireciona-lo para página de login, por exemplo.
Então, um Servlet Filter ou configuração de error no web.xml pode resolver.
isso eu tenho uma classe AuthorizationListenerque implementa o PhaseListener que controla isso pra mim la coloquei para dar um
NavigationHandler nh = facesContext.getApplication().getNavigationHandler();
nh.handleNavigation(facesContext, null, "loginPage");
Bem, depois de um tempo postado meu comentário, parece que o problema ainda não foi resolvido…
Enfim… como o Rafael Pontes falou em seu último post, fiz exatamente o sugerido e criei um tratamento para ViewExpiredException. Como o problema ocorre devido a falta de operação da aplicação pelo tempo de timeout, ao tentar clicar em algum botão, link, ou seja la qual for o componente que dispare uma ação no server, ocorre essa exceção. Acabo justamente redirecionando o usuário para a tela de login. A configuração adicionei no web.xml.
WEB.XML
<error-page>
<error-code>403</error-code>
<location>/erros/403.jsp</location>
</error-page>
<error-page>
<error-code>404</error-code>
<location>/erros/404.jsp</location>
</error-page>
<error-page>
<exception-type>javax.faces.application.ViewExpiredException</exception-type>
<location>/erros/ViewExpired.jsp</location>
</error-page>
ViewExpired.jsp
<html>
<head>
<meta http-equiv="REFRESH" content="0; URL=<%=request.getContextPath()%>/app/index.alu" />
</head>
<body>
</body>
</html>
Estou desde segunda-feira tentando resolver esse problema.
O problema surgiu quando tentei utilizar o componente AutoComplete da PrimeFaces. Tentei diversas combinações de versões e configurações (MyFaces 1.2.9 & PrimeFaces 1.1, MyFaces 2.0.1 & PrimeFaces 2.1 and MyFaces 2.0.1 & PrimeFaces 2.2.M1). O problema só não ocorre com a Mojarra.
Criei uma aplicação de teste (.war): http://www.4shared.com/get/Jm6REAgI/autocomplete.html
Já tentei todas as configurações sugeridas.
Post muito bom. Valeu.
André AS.
[quote=pipoassis]Boa tarde pessoal,
Pesquisando nos fóruns da JBoss Community, solução bastante simples e configurável diretamente no web.xml. Basta adicionar uma varíavel de contexto:
<context-param>
<param-name>com.sun.faces.disableVersionTracking</param-name>
<param-value>true</param-value>
</context-param>
Conforme a referência, esta variável soluciona o problema da ViewExpiredException no JSF 1.1, 1.2 com RichFaces3.1.x. Este é o post para maiores detalhes:
http://www.jboss.org/community/wiki/RichFacesCookbookViewExpiredException.
Abraço a todos[/quote]
Valeu cara, meu ajudou, estou usando rich faces 4.
Galera, não consigo entender por quê toda vez que altero o web.xml ao incluir um valor, tipo a solução do pipoassis, se desfaço a alteração o editor acuso uns erros nada a ver.
Estou dando manutenção em um projeto que já existia. Tenho meu web.xml ok, inclui uma alteração. Não funcionou, mas se eu desfaço ele não aceita mesmo dando um clear no projeto, um rebuild. Parece um cache.
Estou usando seam 5.1.0.
Por exemplo, eis o web.xml:
<?xml version="1.0" encoding="UTF-8"?>
<web-app id="WebApp_ID" version="2.5"
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
<display-name>eptc-aval</display-name>
<context-param>
<param-name>com.sun.faces.disableVersionTracking</param-name>
<param-value>true</param-value>
</context-param>
<context-param>
<param-name>facelets.DEVELOPMENT</param-name>
<param-value>true</param-value>
</context-param>
<context-param>
<param-name>facelets.LIBRARIES</param-name>
<param-value>/WEB-INF/avaliacao.taglib.xml</param-value>
</context-param>...
Se eu remover a solução incluida pelo colega, mesmo assim ele continua acusando erros que não haviam antes da inclusão.
OBS: Tive que editar o arquivo num bloco de notas porque o editor do eclipse ficava sempre berrando a cara alteração. Agora estou testando a solução do colega pipoassis.
Muito obrigado a todos!
[quote=raulcpinheiro]Bem, depois de um tempo postado meu comentário, parece que o problema ainda não foi resolvido…
Enfim… como o Rafael Pontes falou em seu último post, fiz exatamente o sugerido e criei um tratamento para ViewExpiredException. Como o problema ocorre devido a falta de operação da aplicação pelo tempo de timeout, ao tentar clicar em algum botão, link, ou seja la qual for o componente que dispare uma ação no server, ocorre essa exceção. Acabo justamente redirecionando o usuário para a tela de login. A configuração adicionei no web.xml.
WEB.XML
<error-page>
<error-code>403</error-code>
<location>/erros/403.jsp</location>
</error-page>
<error-page>
<error-code>404</error-code>
<location>/erros/404.jsp</location>
</error-page>
<error-page>
<exception-type>javax.faces.application.ViewExpiredException</exception-type>
<location>/erros/ViewExpired.jsp</location>
</error-page>
ViewExpired.jsp
<html>
<head>
<meta http-equiv="REFRESH" content="0; URL=<%=request.getContextPath()%>/app/index.alu" />
</head>
<body>
</body>
</html>
[/quote]
Muito obrigado!! tempão atras disso… ViewExpiredException resolvido!!
[quote=raulcpinheiro]Bem, depois de um tempo postado meu comentário, parece que o problema ainda não foi resolvido…
Enfim… como o Rafael Pontes falou em seu último post, fiz exatamente o sugerido e criei um tratamento para ViewExpiredException. Como o problema ocorre devido a falta de operação da aplicação pelo tempo de timeout, ao tentar clicar em algum botão, link, ou seja la qual for o componente que dispare uma ação no server, ocorre essa exceção. Acabo justamente redirecionando o usuário para a tela de login. A configuração adicionei no web.xml.
WEB.XML
<error-page>
<error-code>403</error-code>
<location>/erros/403.jsp</location>
</error-page>
<error-page>
<error-code>404</error-code>
<location>/erros/404.jsp</location>
</error-page>
<error-page>
<exception-type>javax.faces.application.ViewExpiredException</exception-type>
<location>/erros/ViewExpired.jsp</location>
</error-page>
ViewExpired.jsp
<html>
<head>
<meta http-equiv="REFRESH" content="0; URL=<%=request.getContextPath()%>/app/index.alu" />
</head>
<body>
</body>
</html>
[/quote]
Fala Galera,
Não funcionou o filtro de erro informado então fiz uma alteração e funcionou
<error-page>
<exception-type>javax.servlet.ServletException</exception-type>
<location>/pages/erros/viewExpired.jsp</location>
</error-page>
Fiz apenas alterar a exception para javax.servlet.ServletException, não entendi o motivo de ter funcionado no projeto de outros colegas, talvez seja a versão de alguma biblioteca.
att.
Talvez seja porque estou utilizando uma classe filtro que é uma Servlet.