(Help) JSF + Facelets = Erro no submit

Olá pessoal, estou com um problema ao trabalhar com facelets, pois usando somente JSF tudo funciona normal.
Montei aqui uma aplicação de teste, onde eu tenho dois campos com nomes, e é feita uma comparação entre eles, se for igual, vai pra página “sucesso.xhtml” e se for diferente vai pra “erro.xhtml”, porém, quando eu dou o submit no form, dá erro:

[quote]WARNING: executePhase(APPLY_REQUEST_VALUES 2,com.sun.faces.context.FacesContextImpl@1e09eab) threw exception
javax.faces.FacesException
at com.sun.faces.lifecycle.ApplyRequestValuesPhase.execute(ApplyRequestValuesPhase.java:109)
at com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:248)
at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:117)
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:244)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:141)
at org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:281)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:263)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:584)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
at java.lang.Thread.run(Unknown Source)
Caused by: java.lang.NullPointerException
at javax.faces.component.UIComponentBase.getRenderer(UIComponentBase.java:1194)
at javax.faces.component.UIComponentBase.decode(UIComponentBase.java:774)
at javax.faces.component.UIForm.processDecodes(UIForm.java:192)
at javax.faces.component.UIComponentBase.processDecodes(UIComponentBase.java:989)
at javax.faces.component.UIViewRoot.processDecodes(UIViewRoot.java:494)
at org.ajax4jsf.component.AjaxViewRoot.access$001(AjaxViewRoot.java:57)
at org.ajax4jsf.component.AjaxViewRoot$1.invokeRoot(AjaxViewRoot.java:260)
at org.ajax4jsf.context.JsfOneOneInvoker.invokeOnRegionOrRoot(JsfOneOneInvoker.java:56)
at org.ajax4jsf.context.AjaxContextImpl.invokeOnRegionOrRoot(AjaxContextImpl.java:170)
at org.ajax4jsf.component.AjaxViewRoot.processDecodes(AjaxViewRoot.java:276)
at com.sun.faces.lifecycle.ApplyRequestValuesPhase.execute(ApplyRequestValuesPhase.java:101)
… 19 more
25/01/2008 12:13:05 org.apache.catalina.core.StandardWrapperValve invoke
SEVERE: Servlet.service() for servlet Faces Servlet threw exception
java.lang.NullPointerException
at javax.faces.component.UIComponentBase.getRenderer(UIComponentBase.java:1194)
at javax.faces.component.UIComponentBase.decode(UIComponentBase.java:774)
at javax.faces.component.UIForm.processDecodes(UIForm.java:192)
at javax.faces.component.UIComponentBase.processDecodes(UIComponentBase.java:989)
at javax.faces.component.UIViewRoot.processDecodes(UIViewRoot.java:494)
at org.ajax4jsf.component.AjaxViewRoot.access$001(AjaxViewRoot.java:57)
at org.ajax4jsf.component.AjaxViewRoot$1.invokeRoot(AjaxViewRoot.java:260)
at org.ajax4jsf.context.JsfOneOneInvoker.invokeOnRegionOrRoot(JsfOneOneInvoker.java:56)
at org.ajax4jsf.context.AjaxContextImpl.invokeOnRegionOrRoot(AjaxContextImpl.java:170)
at org.ajax4jsf.component.AjaxViewRoot.processDecodes(AjaxViewRoot.java:276)
at com.sun.faces.lifecycle.ApplyRequestValuesPhase.execute(ApplyRequestValuesPhase.java:101)
at com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:248)
at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:117)
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:244)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:141)
at org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:281)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:263)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:584)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
at java.lang.Thread.run(Unknown Source)[/quote]

principal.xhtml

[code]<ui:composition template="/layout.xhtml">

&lt;ui:define name="conteudo"&gt;
	&lt;h:form&gt;
		&lt;h:outputText value="Nome 1: "/&gt;
		&lt;h:inputText value="#{usuario.nome}"/&gt;<br/>
		
		&lt;h:outputText value="Nome 2: "/&gt;
		&lt;h:inputText value="#{usuario.nome2}"/&gt;<br/>
		
		&lt;h:commandButton action="#{usuario.compara}" value="compara"/&gt;
	&lt;/h:form&gt;
&lt;/ui:define&gt;

</ui:composition>[/code]

faces-config.xml

[code]
<faces-config>
<managed-bean>
<managed-bean-name>usuario</managed-bean-name>
<managed-bean-class>bean.Usuario</managed-bean-class>
<managed-bean-scope>session</managed-bean-scope>
</managed-bean>

&lt;navigation-rule&gt;
	&lt;from-view-id&gt;/formulario.xhtml&lt;/from-view-id&gt;
	&lt;navigation-case&gt;
		&lt;from-outcome&gt;sucesso&lt;/from-outcome&gt;
		&lt;to-view-id&gt;/sucesso.xhtml&lt;/to-view-id&gt;
	&lt;/navigation-case&gt;
	&lt;navigation-case&gt;
		&lt;from-outcome&gt;erro&lt;/from-outcome&gt;
		&lt;to-view-id&gt;/erro.xhtml&lt;/to-view-id&gt;
	&lt;/navigation-case&gt;
&lt;/navigation-rule&gt;

&lt;application&gt;
	&lt;view-handler&gt;com.sun.facelets.FaceletViewHandler&lt;/view-handler&gt;
&lt;/application&gt;

</faces-config>[/code]

Usuario.java

public String compara() { if(nome.equalsIgnoreCase(nome2)) return "sucesso"; else return "erro"; }

Jars utilizados:

[quote]commons-benutils.jar
commons-collections.jar
commons-digester.jar
commons-logging.jar
jsf-api.jar
jsf-facelets.jar
jsf-impl.jar
jsf-tlds.jar
jstl.jar
standard.jar[/quote]

alguém pode me ajudar a resolver esse problema?

Pessoal, eu não comentei mas tb tinha os jars do richfaces no meu classpath, agora testando, removi eles e as declarações no web.xml, funcionou na boa agora, o problema é que quero integrar o richfaces na aplicação e não estou entendendo o porque do erro.

web.xml

[code]<?xml version=“1.0”?>
<web-app 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>appteste</display-name>
<context-param>
<param-name>javax.faces.CONFIG_FILES</param-name>
<param-value>/WEB-INF/faces-config.xml</param-value>
</context-param>
<context-param>
<param-name>javax.faces.DEFAULT_SUFFIX</param-name>
<param-value>.xhtml</param-value>
</context-param>
<context-param>
<param-name>facelets.REFRESH_PERIOD</param-name>
<param-value>2</param-value>
</context-param>
<context-param>
<param-name>facelets.DEVELOPMENT</param-name>
<param-value>true</param-value>
</context-param>
<context-param>
<param-name>javax.faces.STATE_SAVING_METHOD</param-name>
<param-value>client</param-value>
</context-param>
<context-param>
<param-name>com.sun.faces.validateXml</param-name>
<param-value>true</param-value>
</context-param>
<context-param>
<param-name>com.sun.faces.verifyObjects</param-name>
<param-value>true</param-value>
</context-param>
<context-param>
<param-name>org.richfaces.SKIN</param-name>
<param-value>emeraldTown</param-value>
</context-param>
<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>
<listener>
<listener-class>
com.sun.faces.config.ConfigureListener
</listener-class>
</listener>
<servlet>
<servlet-name>Faces Servlet</servlet-name>
<servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>Faces Servlet</servlet-name>
<url-pattern>.jsf</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>Faces Servlet</servlet-name>
<url-pattern>
.xhtml</url-pattern>
</servlet-mapping>

&lt;login-config&gt;
	&lt;auth-method&gt;BASIC&lt;/auth-method&gt;
&lt;/login-config&gt;

</web-app>
[/code]

Será que tem algo errado no meu web.xml? =/

Removi o context param do web.xml:

<context-param>
<param-name>javax.faces.STATE_SAVING_METHOD</param-name>
<param-value>client</param-value>
</context-param>

e funcionou, mas sinceramente não sei pra que serve isso, já que o jboss tools que gerou isso pra mim.