Javax.servlet.ServletException: Tentativa ilegal de definir ViewHandle [resolvido]

Pessoal,

Primeiramente eu fiz minha aplicação usando somente JSF e Hibernate então estava funcionando normal. Mas agora estou tentando usar o richfaces e esta aparecendo uma mensagem de erro. Estou procurando na net sobre essa mensagem mas não acho em lugar algum falando sobre o mesmo.
Obs: Estou usando JSF 2.0, Hibernate, Richfaces 3.3.3 e Tomcat 6.0.

As aterações que eu fiz para usar o richfaces foram:

Adicionar as libs:
richfaces-api-3.3.3.Final.jar
richfaces-impl-3.3.3.Final.jar
richfaces-ui-3.3.3.Final.jar
Obs: Não sei se tenho que incluir a lib richfaces-impl-jsf2-3.3.3.Final.jar, porém já testei com e sem esse lib e não funciona mesmo.

criar a página helloRich.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 uri=“http://richfaces.org/a4j” prefix=“a4j”%>
<%@ taglib uri=“http://richfaces.org/rich” prefix=“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>
<h:form>
<rich:panel header=“Ola RichFaces” style=“width: 300px”>
<h:outputText value=“Seu nome: " />
<h:inputText value=”#{helloRichBean.nome}"/>
<a4j:commandButton value=“Dizer ola” reRender=“olaPainel” />

				&lt;h:panelGroup id="olaPainel" layout="block"&gt;
					&lt;h:outputText value="Ola, " rendered="#{not empty helloRichBean.nome}" /&gt;
					&lt;h:outputText value="#{helloRichBean.nome}" /&gt; 
					&lt;h:outputText value="!" rendered="#{not empty helloRichBean.nome}" /&gt;
				&lt;/h:panelGroup&gt;
			&lt;/rich:panel&gt;
		&lt;/h:form&gt;
	&lt;/f:view&gt;
&lt;/body&gt;

</html>[/code]

Criar o HelloRichBean.java:

package appjsf_sistemafinanceiro.visao;

public class HelloRichBean {
	private String nome = null;

	public String getNome() {
		return nome;
	}
	
	public void setNome(String nome) {
		this.nome = nome;
	}
}

Registrar o Bean no faces-config.xml:

&lt;managed-bean&gt;
  &lt;managed-bean-name&gt;helloRichBean&lt;/managed-bean-name&gt;
  &lt;managed-bean-class&gt;appjsf_sistemafinanceiro.visao.HelloRichBean&lt;/managed-bean-class&gt;
  &lt;managed-bean-scope&gt;session&lt;/managed-bean-scope&gt;
 &lt;/managed-bean&gt;

Se alguem poder me ajudar eu agradeço.

Erro:

HTTP Status 500 -

type Exception report

message

description The server encountered an internal error () that prevented it from fulfilling this request.

exception

javax.servlet.ServletException: Tentativa ilegal de definir ViewHandler depois de uma resposta ter sido renderizada.
javax.faces.webapp.FacesServlet.service(FacesServlet.java:422)
org.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:206)
org.ajax4jsf.webapp.BaseFilter.handleRequest(BaseFilter.java:290)
org.ajax4jsf.webapp.BaseFilter.processUploadsAndHandleRequest(BaseFilter.java:388)
org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:515)

root cause

java.lang.IllegalStateException: Tentativa ilegal de definir ViewHandler depois de uma resposta ter sido renderizada.
com.sun.faces.application.ApplicationImpl.setViewHandler(ApplicationImpl.java:562)
org.ajax4jsf.event.InitPhaseListener.beforePhase(InitPhaseListener.java:92)
com.sun.faces.lifecycle.Phase.handleBeforePhase(Phase.java:228)
com.sun.faces.lifecycle.Phase.doPhase(Phase.java:99)
com.sun.faces.lifecycle.RestoreViewPhase.doPhase(RestoreViewPhase.java:113)
com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:118)
javax.faces.webapp.FacesServlet.service(FacesServlet.java:409)
org.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:206)
org.ajax4jsf.webapp.BaseFilter.handleRequest(BaseFilter.java:290)
org.ajax4jsf.webapp.BaseFilter.processUploadsAndHandleRequest(BaseFilter.java:388)
org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:515)

note The full stack trace of the root cause is available in the Apache Tomcat/6.0.32 logs.

– RESOLVIDO –

Basta acrescentar algumas tags nos seus arquivos de configuração.

Arquivo: web.xml
Acrescentar:

&lt;context-param&gt; &lt;param-name&gt;org.ajax4jsf.VIEW_HANDLERS&lt;/param-name&gt; &lt;param-value&gt;com.sun.facelets.FaceletViewHandler&lt;/param-value&gt; &lt;/context-param&gt;

=================

Arquivo: faces-config.xml
Acrescentar:

&lt;application&gt; &lt;view-handler&gt;org.ajax4jsf.application.AjaxViewHandler&lt;/view-handler&gt; &lt;/application&gt;

até 8)

vc definiu algum viewHandler no seu faces-config.xml?

Posta o seu web.xml pra gente.

blz…

Sucesso!!!

Ahh outra coisa. No tópico que eu postei além do erro que esta acontecendo eu estava com dúvida em qual lib de richfaces-impl eu deveria usar, se era a richfaces-impl-3.3.3.Final.jar ou richfaces-impl-jsf2-3.3.3.Final.jar. Então atráves do link http://community.jboss.org/wiki/RichFaces333andJSF20 eu achei a solução para o meu problema e também descobri que eu deveria utilizar a lib richfaces-impl-jsf2-3.3.3.Final.jar ao invés da lib richfaces-impl-3.3.3.Final.jar.

Abaixo esta meu arquivo web.xml e faces-config.xml para deixar mais claro:

web.xml

&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt; &lt;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"&gt; &lt;display-name&gt;AppJsf_sistemaFinanceiro&lt;/display-name&gt; &lt;welcome-file-list&gt; &lt;welcome-file&gt;index.jsp&lt;/welcome-file&gt; &lt;/welcome-file-list&gt; &lt;servlet&gt; &lt;servlet-name&gt;Faces Servlet&lt;/servlet-name&gt; &lt;servlet-class&gt;javax.faces.webapp.FacesServlet&lt;/servlet-class&gt; &lt;load-on-startup&gt;1&lt;/load-on-startup&gt; &lt;/servlet&gt;&lt;servlet-mapping&gt; &lt;servlet-name&gt;Faces Servlet&lt;/servlet-name&gt; &lt;url-pattern&gt;*.jsf&lt;/url-pattern&gt; &lt;/servlet-mapping&gt; &lt;context-param&gt; &lt;param-name&gt;org.richfaces.SKIN&lt;/param-name&gt; &lt;param-value&gt;blueSky&lt;/param-value&gt; &lt;/context-param&gt; &lt;context-param&gt; &lt;param-name&gt;org.richfaces.CONTROL_SKINNING&lt;/param-name&gt; &lt;param-value&gt;enable&lt;/param-value&gt; &lt;/context-param&gt; &lt;context-param&gt; &lt;param-name&gt;org.ajax4jsf.VIEW_HANDLERS&lt;/param-name&gt; &lt;param-value&gt;com.sun.facelets.FaceletViewHandler&lt;/param-value&gt; &lt;/context-param&gt; &lt;filter&gt; &lt;display-name&gt;RichFaces Filter&lt;/display-name&gt; &lt;filter-name&gt;richfaces&lt;/filter-name&gt; &lt;filter-class&gt;org.ajax4jsf.Filter&lt;/filter-class&gt; &lt;/filter&gt; &lt;filter-mapping&gt; &lt;filter-name&gt;richfaces&lt;/filter-name&gt; &lt;servlet-name&gt;Faces Servlet&lt;/servlet-name&gt; &lt;dispatcher&gt;REQUEST&lt;/dispatcher&gt; &lt;dispatcher&gt;FORWARD&lt;/dispatcher&gt; &lt;dispatcher&gt;INCLUDE&lt;/dispatcher&gt; &lt;/filter-mapping&gt; &lt;listener&gt; &lt;listener-class&gt;com.sun.faces.config.ConfigureListener&lt;/listener-class&gt; &lt;/listener&gt; &lt;/web-app&gt;

faces-config.xml

&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt; &lt;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"&gt; &lt;converter&gt; &lt;converter-for-class&gt;java.lang.Enum&lt;/converter-for-class&gt; &lt;converter-class&gt;appjsf_sistemafinanceiro.conversores.EnumConverter&lt;/converter-class&gt; &lt;/converter&gt; &lt;converter&gt; &lt;converter-for-class&gt;appjsf_sistemafinanceiro.dominio.Pessoa&lt;/converter-for-class&gt; &lt;converter-class&gt;appjsf_sistemafinanceiro.conversores.PessoaConverter&lt;/converter-class&gt; &lt;/converter&gt; &lt;managed-bean&gt; &lt;managed-bean-name&gt;cadastroContaBean&lt;/managed-bean-name&gt; &lt;managed-bean-class&gt;appjsf_sistemafinanceiro.visao.CadastroContaBean&lt;/managed-bean-class&gt; &lt;managed-bean-scope&gt;session&lt;/managed-bean-scope&gt; &lt;/managed-bean&gt; &lt;managed-bean&gt; &lt;managed-bean-name&gt;consultaContaBean&lt;/managed-bean-name&gt; &lt;managed-bean-class&gt;appjsf_sistemafinanceiro.visao.ConsultaContaBean&lt;/managed-bean-class&gt; &lt;managed-bean-scope&gt;session&lt;/managed-bean-scope&gt; &lt;/managed-bean&gt; &lt;managed-bean&gt; &lt;managed-bean-name&gt;helloRichBean&lt;/managed-bean-name&gt; &lt;managed-bean-class&gt;appjsf_sistemafinanceiro.visao.HelloRichBean&lt;/managed-bean-class&gt; &lt;managed-bean-scope&gt;session&lt;/managed-bean-scope&gt; &lt;/managed-bean&gt; &lt;navigation-rule&gt; &lt;navigation-case&gt; &lt;from-outcome&gt;cadastroConta&lt;/from-outcome&gt; &lt;to-view-id&gt;/contas/cadastroConta.jsf&lt;/to-view-id&gt; &lt;/navigation-case&gt; &lt;navigation-case&gt; &lt;from-outcome&gt;consultaConta&lt;/from-outcome&gt; &lt;to-view-id&gt;/contas/consultaConta.jsf&lt;/to-view-id&gt; &lt;/navigation-case&gt; &lt;/navigation-rule&gt; &lt;navigation-rule&gt; &lt;navigation-case&gt; &lt;from-outcome&gt;menu&lt;/from-outcome&gt; &lt;to-view-id&gt;/menu.jsp&lt;/to-view-id&gt; &lt;redirect/&gt; &lt;/navigation-case&gt; &lt;/navigation-rule&gt; &lt;application&gt; &lt;message-bundle&gt;appjsf_sistemafinanceiro.recursos.messages&lt;/message-bundle&gt; &lt;/application&gt; &lt;application&gt; &lt;view-handler&gt;org.ajax4jsf.application.AjaxViewHandler&lt;/view-handler&gt; &lt;/application&gt; &lt;/faces-config&gt;

Até 8)

O estranho é que seu faces-config.xml tá do jsf 1.2.
É assim mesmo?