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
<%@ 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"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
<f:view>
<a4j:log />
<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>
</body>
</html>
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:
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)
É 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: [url]http://www.guj.com.br/posts/list/0/85236.java#460553[/url]
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:
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">
<display-name>ProjetoDinamicoWeb</display-name>
<welcome-file-list>
<welcome-file>index.html</welcome-file>
<welcome-file>index.htm</welcome-file>
<welcome-file>index.jsp</welcome-file>
<welcome-file>default.html</welcome-file>
<welcome-file>default.htm</welcome-file>
<welcome-file>default.jsp</welcome-file>
</welcome-file-list>
<servlet>
<servlet-name>Faces Servlet</servlet-name>
<servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<context-param>
<param-name>javax.faces.STATE_SAVING_METHOD</param-name>
<param-value>server</param-value>
</context-param>
<servlet-mapping>
<servlet-name>Faces Servlet</servlet-name>
<url-pattern>*.jsf</url-pattern>
</servlet-mapping>
<filter>
<display-name>RichFaces Filter</display-name>
<filter-name>richfaces</filter-name>
<filter-class>org.ajax4jsf.Filter</filter-class>
</filter>
<filter-mapping>
<filter-name>richfaces</filter-name>
<servlet-name>Faces Servlet</servlet-name>
<dispatcher>REQUEST</dispatcher>
<dispatcher>FORWARD</dispatcher>
<dispatcher>INCLUDE</dispatcher>
</filter-mapping>
<servlet>
<description></description>
<display-name>FirstServlet</display-name>
<servlet-name>FirstServlet</servlet-name>
<servlet-class>FirstServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>FirstServlet</servlet-name>
<url-pattern>/FirstServlet</url-pattern>
</servlet-mapping>
<context-param>
<param-name>org.richfaces.SKIN</param-name>
<param-value>ruby</param-value>
</context-param>
<context-param>
<param-name>com.sun.faces.numberOfViewsInSession</param-name>
<param-value>100</param-value>
</context-param>
<context-param>
<param-name>org.richfaces.CONTROL_SKINNING</param-name>
<param-value>enable</param-value>
</context-param>
</web-app>
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