Problema na integração de RichFaces com Facelets

5 respostas
rafael.espiritosanto

Olá!
Estou usando o plugin JBoss Tools e ao criar um projeto JSF escolho a opção do JSF 1.2 mais simples possível.
Daí eu adiciono as libs:
jsf-api e jsf-impl

Após isso eu adiciono as configurações para utilizar o rich faces adicionando as libs correspondentes e tudo continua funcionando.

Ao adicionar as libs e configuração para utilizar Facelets é lançada uma exceção ao dar start no tomcat.
Tirando a lib el-api-1.0.jar (que veio no pacote do Facelets) não é mais lançada exceção. No entanto não consigo
acessar a página através do browser.

O que fazer?

Eis os logs do erro e após a retirada do arquivo el-api-1.0.jar

Abraço!

03/10/2008 15:53:44 org.apache.tomcat.util.digester.SetPropertiesRule begin
WARNING: [SetPropertiesRule]{Server/Service/Engine/Host/Context} Setting property 'source' to 'org.eclipse.jst.j2ee.server:JSFProject' did not find a matching property.
03/10/2008 15:53:44 org.apache.catalina.core.AprLifecycleListener init
INFO: The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: C:\Arquivos de programas\Java\jre6\bin;.;C:\WINDOWS\Sun\Java\bin;C:\WINDOWS\system32;C:\WINDOWS;C:/Arquivos de programas/Java/jre6/bin/client;C:/Arquivos de programas/Java/jre6/bin;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\system32\wbem;C:\Arquivos de programas\Java\jdk1.5.0_08\bin;C:\Arquivos de programas\CVSNT\;C:\Arquivos de programas\MySQL\MySQL Server 5.1\bin;C:\Arquivos de programas\Arquivos comuns\Ahead\Lib\
03/10/2008 15:53:44 org.apache.coyote.http11.Http11Protocol init
INFO: Initializing Coyote HTTP/1.1 on http-8080
03/10/2008 15:53:44 org.apache.catalina.startup.Catalina load
INFO: Initialization processed in 1050 ms
03/10/2008 15:53:44 org.apache.catalina.core.StandardService start
INFO: Starting service Catalina
03/10/2008 15:53:44 org.apache.catalina.core.StandardEngine start
INFO: Starting Servlet Engine: Apache Tomcat/6.0.18
03/10/2008 15:53:45 com.sun.faces.config.ConfigureListener contextInitialized
INFO: Initializing Sun's JavaServer Faces implementation (1.2-b20-FCS) for context '/JSFProject'
03/10/2008 15:53:50 com.sun.faces.config.ConfigureListener contextInitialized
INFO: Completed initializing Sun's JavaServer Faces implementation (1.2-b20-FCS) for context '/JSFProject'
03/10/2008 15:53:50 org.apache.catalina.core.StandardContext listenerStart
SEVERE: Exception sending context initialized event to listener instance of class com.sun.faces.config.GlassFishConfigureListener
java.lang.LinkageError: loader constraint violation: when resolving interface method "javax.servlet.jsp.JspApplicationContext.getExpressionFactory()Ljavax/el/ExpressionFactory;" the class loader (instance of org/apache/catalina/loader/WebappClassLoader) of the current class, com/sun/faces/config/ConfigureListener, and the class loader (instance of org/apache/catalina/loader/StandardClassLoader) for resolved class, javax/servlet/jsp/JspApplicationContext, have different Class objects for the type javax/el/ExpressionFactory used in the signature
	at com.sun.faces.config.ConfigureListener.registerELResolverAndListenerWithJsp(ConfigureListener.java:1892)
	at com.sun.faces.config.ConfigureListener.contextInitialized(ConfigureListener.java:546)
	at com.sun.faces.config.GlassFishConfigureListener.contextInitialized(GlassFishConfigureListener.java:47)
	at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:3843)
	at org.apache.catalina.core.StandardContext.start(StandardContext.java:4342)
	at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)
	at org.apache.catalina.core.StandardHost.start(StandardHost.java:719)
	at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)
	at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443)
	at org.apache.catalina.core.StandardService.start(StandardService.java:516)
	at org.apache.catalina.core.StandardServer.start(StandardServer.java:710)
	at org.apache.catalina.startup.Catalina.start(Catalina.java:578)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
	at java.lang.reflect.Method.invoke(Unknown Source)
	at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:288)
	at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:413)
03/10/2008 15:53:50 com.sun.faces.config.ConfigureListener contextInitialized
INFO: Initializing Sun's JavaServer Faces implementation (1.2-b20-FCS) for context '/JSFProject'
03/10/2008 15:53:50 com.sun.faces.config.ConfigureListener contextInitialized
INFO: Completed initializing Sun's JavaServer Faces implementation (1.2-b20-FCS) for context '/JSFProject'
03/10/2008 15:53:50 org.apache.catalina.core.StandardContext start
SEVERE: Error listenerStart
03/10/2008 15:53:50 org.apache.catalina.core.StandardContext start
SEVERE: Context [/JSFProject] startup failed due to previous errors
03/10/2008 15:53:51 org.apache.coyote.http11.Http11Protocol start
INFO: Starting Coyote HTTP/1.1 on http-8080
03/10/2008 15:53:51 org.apache.jk.common.ChannelSocket init
INFO: JK: ajp13 listening on /0.0.0.0:8009
03/10/2008 15:53:51 org.apache.jk.server.JkMain start
INFO: Jk running ID=0 time=0/63  config=null
03/10/2008 15:53:51 org.apache.catalina.startup.Catalina start
INFO: Server startup in 7126 ms

Após a retirada do arquivo e tentar executar uma página

03/10/2008 15:55:07 org.apache.tomcat.util.digester.SetPropertiesRule begin
WARNING: [SetPropertiesRule]{Server/Service/Engine/Host/Context} Setting property 'source' to 'org.eclipse.jst.j2ee.server:JSFProject' did not find a matching property.
03/10/2008 15:55:07 org.apache.catalina.core.AprLifecycleListener init
INFO: The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: C:\Arquivos de programas\Java\jre6\bin;.;C:\WINDOWS\Sun\Java\bin;C:\WINDOWS\system32;C:\WINDOWS;C:/Arquivos de programas/Java/jre6/bin/client;C:/Arquivos de programas/Java/jre6/bin;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\system32\wbem;C:\Arquivos de programas\Java\jdk1.5.0_08\bin;C:\Arquivos de programas\CVSNT\;C:\Arquivos de programas\MySQL\MySQL Server 5.1\bin;C:\Arquivos de programas\Arquivos comuns\Ahead\Lib\
03/10/2008 15:55:07 org.apache.coyote.http11.Http11Protocol init
INFO: Initializing Coyote HTTP/1.1 on http-8080
03/10/2008 15:55:07 org.apache.catalina.startup.Catalina load
INFO: Initialization processed in 866 ms
03/10/2008 15:55:07 org.apache.catalina.core.StandardService start
INFO: Starting service Catalina
03/10/2008 15:55:07 org.apache.catalina.core.StandardEngine start
INFO: Starting Servlet Engine: Apache Tomcat/6.0.18
03/10/2008 15:55:08 com.sun.faces.config.ConfigureListener contextInitialized
INFO: Initializing Sun's JavaServer Faces implementation (1.2-b20-FCS) for context '/JSFProject'
03/10/2008 15:55:14 com.sun.faces.config.ConfigureListener contextInitialized
INFO: Completed initializing Sun's JavaServer Faces implementation (1.2-b20-FCS) for context '/JSFProject'
03/10/2008 15:55:14 com.sun.faces.config.ConfigureListener contextInitialized
INFO: Initializing Sun's JavaServer Faces implementation (1.2-b20-FCS) for context '/JSFProject'
03/10/2008 15:55:14 com.sun.faces.config.ConfigureListener contextInitialized
INFO: Completed initializing Sun's JavaServer Faces implementation (1.2-b20-FCS) for context '/JSFProject'
03/10/2008 15:55:14 org.ajax4jsf.cache.CacheManager getCacheFactory
INFO: Selected [org.ajax4jsf.cache.LRUMapCacheFactory] cache factory
03/10/2008 15:55:14 org.ajax4jsf.cache.LRUMapCacheFactory createCache
INFO: Creating LRUMap cache instance using parameters: {facelets.DEVELOPMENT=true, org.richfaces.SKIN=blueSky, com.sun.faces.validateXml=true, com.sun.faces.verifyObjects=true, javax.faces.STATE_SAVING_METHOD=server, javax.faces.DEFAULT_SUFFIX=.xhtml}
03/10/2008 15:55:14 org.ajax4jsf.cache.LRUMapCacheFactory createCache
INFO: Creating LRUMap cache instance of default capacity
03/10/2008 15:55:14 org.ajax4jsf.cache.CacheManager getCacheFactory
INFO: Selected [org.ajax4jsf.cache.LRUMapCacheFactory] cache factory
03/10/2008 15:55:14 org.ajax4jsf.cache.LRUMapCacheFactory createCache
INFO: Creating LRUMap cache instance using parameters: {facelets.DEVELOPMENT=true, org.richfaces.SKIN=blueSky, com.sun.faces.validateXml=true, com.sun.faces.verifyObjects=true, javax.faces.STATE_SAVING_METHOD=server, javax.faces.DEFAULT_SUFFIX=.xhtml}
03/10/2008 15:55:14 org.ajax4jsf.cache.LRUMapCacheFactory createCache
INFO: Creating LRUMap cache instance of default capacity
03/10/2008 15:55:14 org.apache.coyote.http11.Http11Protocol start
INFO: Starting Coyote HTTP/1.1 on http-8080
03/10/2008 15:55:14 org.apache.jk.common.ChannelSocket init
INFO: JK: ajp13 listening on /0.0.0.0:8009
03/10/2008 15:55:14 org.apache.jk.server.JkMain start
INFO: Jk running ID=0 time=0/63  config=null
03/10/2008 15:55:14 org.apache.catalina.startup.Catalina start
INFO: Server startup in 6677 ms
03/10/2008 15:55:52 com.sun.facelets.compiler.TagLibraryConfig loadImplicit
INFO: Added Library from: jar:file:/D:/eclipse%203.4/workspace/.metadata/.plugins/org.eclipse.wst.server.core/tmp0/wtpwebapps/JSFProject/WEB-INF/lib/jsf-facelets.jar!/META-INF/jsf-core.taglib.xml
03/10/2008 15:55:52 com.sun.facelets.compiler.TagLibraryConfig loadImplicit
INFO: Added Library from: jar:file:/D:/eclipse%203.4/workspace/.metadata/.plugins/org.eclipse.wst.server.core/tmp0/wtpwebapps/JSFProject/WEB-INF/lib/jsf-facelets.jar!/META-INF/jsf-html.taglib.xml
03/10/2008 15:55:52 com.sun.facelets.compiler.TagLibraryConfig loadImplicit
INFO: Added Library from: jar:file:/D:/eclipse%203.4/workspace/.metadata/.plugins/org.eclipse.wst.server.core/tmp0/wtpwebapps/JSFProject/WEB-INF/lib/jsf-facelets.jar!/META-INF/jsf-ui.taglib.xml
03/10/2008 15:55:52 com.sun.facelets.compiler.TagLibraryConfig loadImplicit
INFO: Added Library from: jar:file:/D:/eclipse%203.4/workspace/.metadata/.plugins/org.eclipse.wst.server.core/tmp0/wtpwebapps/JSFProject/WEB-INF/lib/jsf-facelets.jar!/META-INF/jstl-core.taglib.xml
03/10/2008 15:55:52 com.sun.facelets.compiler.TagLibraryConfig loadImplicit
INFO: Added Library from: jar:file:/D:/eclipse%203.4/workspace/.metadata/.plugins/org.eclipse.wst.server.core/tmp0/wtpwebapps/JSFProject/WEB-INF/lib/jsf-facelets.jar!/META-INF/jstl-fn.taglib.xml
03/10/2008 15:55:52 com.sun.facelets.compiler.TagLibraryConfig loadImplicit
INFO: Added Library from: jar:file:/D:/eclipse%203.4/workspace/.metadata/.plugins/org.eclipse.wst.server.core/tmp0/wtpwebapps/JSFProject/WEB-INF/lib/richfaces-ui-3.2.2.GA.jar!/META-INF/a4j.taglib.xml
03/10/2008 15:55:52 com.sun.facelets.compiler.TagLibraryConfig loadImplicit
INFO: Added Library from: jar:file:/D:/eclipse%203.4/workspace/.metadata/.plugins/org.eclipse.wst.server.core/tmp0/wtpwebapps/JSFProject/WEB-INF/lib/richfaces-ui-3.2.2.GA.jar!/META-INF/ajax4jsf.taglib.xml
03/10/2008 15:55:52 com.sun.facelets.compiler.TagLibraryConfig loadImplicit
INFO: Added Library from: jar:file:/D:/eclipse%203.4/workspace/.metadata/.plugins/org.eclipse.wst.server.core/tmp0/wtpwebapps/JSFProject/WEB-INF/lib/richfaces-ui-3.2.2.GA.jar!/META-INF/jsp.taglib.xml
03/10/2008 15:55:52 com.sun.facelets.compiler.TagLibraryConfig loadImplicit
INFO: Added Library from: jar:file:/D:/eclipse%203.4/workspace/.metadata/.plugins/org.eclipse.wst.server.core/tmp0/wtpwebapps/JSFProject/WEB-INF/lib/richfaces-ui-3.2.2.GA.jar!/META-INF/rich.taglib.xml
03/10/2008 15:55:53 com.sun.facelets.compiler.TagLibraryConfig loadImplicit
INFO: Added Library from: jar:file:/D:/eclipse%203.4/workspace/.metadata/.plugins/org.eclipse.wst.server.core/tmp0/wtpwebapps/JSFProject/WEB-INF/lib/richfaces-ui-3.2.2.GA.jar!/META-INF/richfaces.taglib.xml

Esta é a configuração do web.xml

<?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>JSFProject</display-name>
 
 <context-param>
  <param-name>org.richfaces.SKIN</param-name>
  <param-value>blueSky</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>
 
 <context-param>
  <param-name>javax.faces.STATE_SAVING_METHOD</param-name>
  <param-value>server</param-value>
 </context-param>
 <listener>
  <listener-class>com.sun.faces.config.ConfigureListener</listener-class>
 </listener>
 
 <!-- Use Documents Saved as *.xhtml -->	
  <context-param>
    <param-name>javax.faces.DEFAULT_SUFFIX</param-name>
    <param-value>.xhtml</param-value>
  </context-param>
  
  <!-- Special Debug Output for Development -->
  <context-param>
    <param-name>facelets.DEVELOPMENT</param-name>
    <param-value>true</param-value>
  </context-param>
	  
  <!-- Optional JSF-RI Parameters to Help Debug -->
  <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>
 
 
 <!-- Faces Servlet -->
 <servlet>
  <servlet-name>Faces Servlet</servlet-name>
  <servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
  <load-on-startup>1</load-on-startup>
 </servlet>
 <!-- Faces Servlet Mapping -->
 <servlet-mapping>
  <servlet-name>Faces Servlet</servlet-name>
  <url-pattern>*.jsf</url-pattern>
 </servlet-mapping>
 <login-config>
  <auth-method>BASIC</auth-method>
 </login-config>
</web-app>

E do 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>loginForm</managed-bean-name>
  <managed-bean-class>LoginForm</managed-bean-class>
  <managed-bean-scope>request</managed-bean-scope>
 </managed-bean>
 
 <application>
  <view-handler>com.sun.facelets.FaceletViewHandler</view-handler>
 </application>
</faces-config>

Abraço!

5 Respostas

rafael.espiritosanto

Vi que o problema está ligado a uma diferença entre a classe que é utilizada pelo Tomcat e a que é utilizada pelo JSF.
Mas não sei o que fazer… :frowning:

rubone

Pelo que deu pra entenderr ta faltando uma dll do windows que o tomcat usa…
dá uma olhada nesta página:
http://mattfleming.com/node/247

rafael.espiritosanto

Cara, acho que não…
pelo que entendi a assinatura do método da classe utilizada no Tomcat é diferente da utilizada pela classe do JSF.
Tanto que se eu remover a classe do JSF o problema para (só que aí eu não consigo acessar a página)

Abraço!

rafael.espiritosanto

Resolvi o problema.
Não estava conseguindo acessar a página porque não estava fazendo referência correta ao arquivo de template (como as páginas estavam em outra pasta deveria incluir / no caminho do template.

<ui:composition xmlns="http://www.w3.org/1999/xhtml"
    xmlns:s="http://jboss.com/products/seam/taglib"
    xmlns:ui="http://java.sun.com/jsf/facelets"
    xmlns:f="http://java.sun.com/jsf/core"
    xmlns:h="http://java.sun.com/jsf/html"
    xmlns:rich="http://richfaces.org/rich"
    xmlns:a="http://richfaces.org/a4j"
    template="/layout/template.xhtml">
akelekara

Blz Rafael?

Ow compartilhar um problema que estou tendo no meu ambiente aqui… talvez vc me dá um luz.

Seguinte, estou desenvolvendo uma aplicação com Eclipse Galileo, CVS, Jboss Seam, Hibernate, Faceletes, RichFaces e Tomcat 6. Tem mais de ano que estou nesse projeto… tudo funcionando perfeitamente.

So que tenho versões diferentes desse projeto no CVS. Quando eu troco de versão (Branch do CVS) e faço o deploy. A aplicação sobe normalmente, não apresentando nenhum erro no console! Inicializando igual minha versão da HEAD.

Quando vou acessar a aplicação pelo browser, dá um erro igual o q vc teve ae. Coloquei em anexo uma imagem do erro do console do eclipse ao acessar a aplicação pelo browser.

A solução q achei para contornar esse problema, foi apagar meu workspace do Eclipse e configurar o server no eclipse novamente. So que está ficando inviável trabalhar desse forma, pois toda vez perco todas configurações q tinha feito no Eclipse.

Tem alguma dica ae p me passar?

Valeu!

PS: No anexo não deu p visualizar toda msg de erro, segue a msg:

INFO: Added Library from: jar:file:/D:/Java/workspace/.metadata/.plugins/org.eclipse.wst.server.core/tmp0/wtpwebapps/habilis/WEB-INF/lib/jboss-seam-excel.jar!/META-INF/seam-excel.taglib.xml
23/08/2011 11:14:25 com.sun.facelets.compiler.TagLibraryConfig loadImplicit
INFO: Added Library from: jar:file:/D:/Java/workspace/.metadata/.plugins/org.eclipse.wst.server.core/tmp0/wtpwebapps/habilis/WEB-INF/lib/jboss-seam-mail.jar!/META-INF/seam-mail.taglib.xml
23/08/2011 11:14:25 com.sun.facelets.compiler.TagLibraryConfig loadImplicit
INFO: Added Library from: jar:file:/D:/Java/workspace/.metadata/.plugins/org.eclipse.wst.server.core/tmp0/wtpwebapps/habilis/WEB-INF/lib/jboss-seam-pdf.jar!/META-INF/seam-pdf.taglib.xml
23/08/2011 11:14:25 com.sun.facelets.compiler.TagLibraryConfig loadImplicit


Criado 3 de outubro de 2008
Ultima resposta 23 de ago. de 2011
Respostas 5
Participantes 3