Facelets + Tomcat 6.0.x = Erro?

4 respostas
R

Olá pessoal, estou utilizando no meu projeto, baseado na framework JSF, Facelets, apenas como gerenciador do layout. Estou começando agor com ele, mas já foi um grande avanço coloca-lo para funcionar. Digo isso porque tentei rodar com o Tomcat 6.0, que é o que eu utilizo e não consegui. Daí, depois de umas 10 tentativas de novos projetos, substituições de Jars e alterações de configurações *.xml, eu consegui, só mudando para o Tomcat 5.5.x. Porém, me senti “regredindo” um pouco, pois mudei para uma versão mais antiga. Vocês poderiam me explicar porque isso acontece ? Pq o Facelets não funciona no Tomcat 6.0 ? Isso não foi um problema que aconteceu comigo apenas. Conheço muita gente que não conseguiu colocar o Facelets para rodar no Tomcat 6.0, apenas no 5.5… E além disso, se alguem puder me falar quais recursos eu “perdi” ?

Grato,
Raoni Monteiro.

4 Respostas

felipeguerra

Funciona sim, eu utilizo.

De antemão, posso te passar como fica o web.xml e o faces-config.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>carona-web</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>facelets.DEVELOPMENT</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>javax.faces.DEFAULT_SUFFIX</param-name>
		<param-value>.jspx</param-value>
	</context-param>

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

	 <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>
  
</web-app>
e
<?xml version="1.0" encoding="UTF-8"?>

<faces-config
    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-facesconfig_1_2.xsd"
    version="1.2">
    
	<application>
		<message-bundle>MessageResources</message-bundle>
		<view-handler>com.sun.facelets.FaceletViewHandler</view-handler>
		<locale-config>
			<default-locale>pt_BR</default-locale>
		</locale-config>
	</application>	
	
</faces-config>
R

Muitíssimo obrigado, caro felipeguerra. Meu problema foi resolvido. Foi só colocar isso:

<locale-config>   
      <default-locale>pt_BR</default-locale>   
</locale-config>

Que resolveu o problema.

Obrigado mesmo.

Abraço.

R

Olá pessoal!

Fiz essa configuração porém o meu continua dando pau.
Ambiente: Netbeans 6.0.1; Facelets 1.1.14; RichFaces 3.2.0; Tomahawk 1.1.6 e Tomcat 6.0.16
Erro: SEVERE: Exception sending context initialized event to listener instance of class com.sun.faces.config.ConfigureListener
javax.faces.FacesException: java.lang.UnsupportedOperationException

Já fiz de tudo, mas nada…trabalho com richfaces sem problemas, porém quando vou utilizar o recurso de templates (Facelets) dá esse pau, já pensei em regredir para tomcat 5.5, mas parei por ai…se tiver como vcs me enviarem o projeto exemplo com as devidas configurações eu agradeço, pois estou nessa luta faz 3 dias.
OBS: Meu web.xml e faces-config.xml está igual ao mostrado aqui no fórum.

Fico no aguardo.
E-mail: [email removido]

cafeina

A resposta é simples. O tomcat 5 fornece a Servlet 2.4 API (http://mirror.pop-sc.rnp.br/apache//tomcat/tomcat-5/v5.5.31/RELEASE-NOTES) enquanto que o tomcat 6 fornece a Servlet 2.5 API (http://linorg.usp.br/apache//tomcat/tomcat-6/v6.0.29/RELEASE-NOTES). O facelets 1.1.x faz uso da Servlet 2.4 API por isso seus projetos funcionam apenas no tomcat 5. :slight_smile:

Criado 19 de março de 2008
Ultima resposta 8 de out. de 2010
Respostas 4
Participantes 4