Boa noite pessoal,
estou com um problema estranho tentando executar uma aplicação simples com JSF 1.2 e Tomcat 6.0.8. Eu criei um novo Dynamic Web Project no Eclipse e uma página simples de teste de envio com um campo apenas:
listaPessoa.jsp
[code]<%@ page language=“java” contentType=“text/html; charset=ISO-8859-1”
pageEncoding=“ISO-8859-1”%>
<%@taglib prefix=“f” uri=“http://java.sun.com/jsf/core”%>
<%@taglib prefix=“h” uri=“http://java.sun.com/jsf/html”%>
<%@taglib prefix=“a4j” uri=“http://richfaces.org/a4j”%>
<%@taglib prefix=“rich” uri=“http://richfaces.org/rich”%>
<h:form id="formAdicionar">
<h:outputText value="Nome: " />
<h:inputText id="nome" value="#{pessoaList.nome}" size="30">
<f:validateLength minimum="3" />
</h:inputText>
<h:panelGroup id="p_nome">
<h:message for="nome" />
</h:panelGroup>
<h:commandButton action="lala" value="Teste" />
</h:form>
</f:view>
[/code]Após iniciar a aplicação eu entro nesta página (listaPessoa.jsp) sem problemas, mas no momento em que submeto o form a seguinte exceção é lançada:
[code]exception
javax.servlet.ServletException: viewId:/listaPessoa.jsf - View /listaPessoa.jsf could not be restored.
javax.faces.webapp.FacesServlet.service(FacesServlet.java:323)
org.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:178)
org.ajax4jsf.webapp.BaseFilter.handleRequest(BaseFilter.java:290)
org.ajax4jsf.webapp.BaseFilter.processUploadsAndHandleRequest(BaseFilter.java:390)
org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:517)
root cause
javax.faces.application.ViewExpiredException: viewId:/listaPessoa.jsf - View /listaPessoa.jsf could not be restored.
com.sun.faces.lifecycle.RestoreViewPhase.execute(RestoreViewPhase.java:208)
com.sun.faces.lifecycle.Phase.doPhase(Phase.java:102)
com.sun.faces.lifecycle.RestoreViewPhase.doPhase(RestoreViewPhase.java:107)
com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:118)
javax.faces.webapp.FacesServlet.service(FacesServlet.java:310)
org.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:178)
org.ajax4jsf.webapp.BaseFilter.handleRequest(BaseFilter.java:290)
org.ajax4jsf.webapp.BaseFilter.processUploadsAndHandleRequest(BaseFilter.java:390)
org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:517)
[/code]
É algo estranho tendo em vista que foi realizada na primeira submissão e não houve tempo algum para expirar a sessão.
Procurei este erro em diversos lugares, inclusive em um post aqui do guj: http://www.guj.com.br/posts/list/0/85236.java#460553
Verifiquei que quando eu mudo o State Saving Method pra “client” o problema desaparece e a aplicação funciona sem problemas, porém não intendi porque e não gostaria de ter que deixar desta maneira. Existe alguma forma de deixar o State Saving no servidor?
Aqui vão meu faces-config e web.xml:
web.xml:
[code]<?xml version="1.0" encoding="UTF-8"?>
ProjetoDinamicoWeb
index.html
index.htm
index.jsp
default.html
default.htm
default.jsp
Faces Servlet
javax.faces.webapp.FacesServlet
1
[/code]
Faces-Config:
<?xml version="1.0" encoding="UTF-8"?>
<faces-config version="1.2" xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xi="http://www.w3.org/2001/XInclude"
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-facesconfig_1_2.xsd">
<managed-bean>
<managed-bean-name>pessoaList</managed-bean-name>
<managed-bean-class>br.com.loja.PessoaList</managed-bean-class>
<managed-bean-scope>request</managed-bean-scope>
<managed-property>
<property-name>pessoaNova</property-name>
<property-class>br.com.basicas.Pessoa</property-class>
<value>#{pessoa}</value>
</managed-property>
</managed-bean>
<managed-bean>
<managed-bean-name>pessoa</managed-bean-name>
<managed-bean-class>br.com.basicas.Pessoa</managed-bean-class>
<managed-bean-scope>none</managed-bean-scope>
</managed-bean>
<navigation-rule>
<from-view-id>/listaPessoa.jsp</from-view-id>
<navigation-case>
<from-outcome>lala</from-outcome>
<to-view-id>/pagina.jsp</to-view-id>
</navigation-case>
</navigation-rule>
</faces-config>
Ps: Tentei retirar o rich faces pra saber se ele estava causando o problema mas o erro continuou da mesma maneira.
Obrigado
