Problema com Richfaces e JSF

23 respostas
Morpheus_Urubu

Continuando a minha odisséia em busca de tentar entender esses componentes, tropecei mais uma vez:

Em meu projeto para web, usando o Glassfish v2, Netbeans, Hibernate e JSF puro, tentei começar a usar o RichFaces para testar e começar a brincar com as requisições AJAX.

Quando inicio meu projeto, mesmo sem usar nenhuma tag do richfaces, obtenho o erro 503 "The requested service () is not currently available."

Usei este guia http://www.devmedia.com.br/articles/viewcomp.asp?comp=6440, baixei o a biblioteca richfaces-ui-3.3.0.GA no site indicado, depois alterei o meu WEB.XML, sendo que ele ficou da seguinte forma:

<?xml version="1.0" encoding="UTF-8"?>
<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">
    <filter>
        <display-name>Ajax4jsf Filter</display-name>
        <filter-name>ajax4jsf</filter-name>
        <filter-class>org.ajax4jsf.Filter</filter-class>
    </filter>
    <filter-mapping>
        <filter-name>ajax4jsf</filter-name>
        <servlet-name>Faces Servlet</servlet-name>
        <dispatcher>REQUEST</dispatcher>
        <dispatcher>FORWARD</dispatcher>
        <dispatcher>INCLUDE</dispatcher>
    </filter-mapping>

    <context-param>
        <param-name>org.richfaces.SKIN</param-name>
        <param-value>wine</param-value>
    </context-param>
    <context-param>
        <param-name>org.ajax4jsf.COMPRESS_SCRIPT</param-name>
        <param-value>true</param-value>
    </context-param>
    <context-param>
        <param-name>org.ajax4jsf.COMPRESS_STYLE</param-name>
        <param-value>true</param-value>
    </context-param>
    <context-param>
        <param-name>org.richfaces.CONTROL_SKINNING</param-name>
        <param-value>enable</param-value>
    </context-param>


    <context-param>
        <param-name>com.sun.faces.verifyObjects</param-name>
        <param-value>false</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>javax.faces.STATE_SAVING_METHOD</param-name>
        <param-value>client</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>/faces/*</url-pattern>
    </servlet-mapping>
    <session-config>
        <session-timeout>
            30
        </session-timeout>
    </session-config>
    <welcome-file-list>
        <welcome-file>faces/setor.jsp</welcome-file>
        </welcome-file-list>
    </web-app>

Logo após, copiei para o diretório /WEB-INF/lib do meu projeto, os seguintes JARS:

richfaces-api-3.3.0.GA
richfaces-impl-3.3.0.GA
richfaces-ui-3.3.0.GA

1. Alguem poderia me dizer o que estou fazendo de errado dessa vez, e se, existe alguma incompatilibidade entre o RichFaces e o JSF ?

2. Qual a diferença entre JSF, RichFaces e Facelets ?

Já estou ficando maluco com essa questão de interface com o usuário usando frameworks, Os materiais que acho espalhados por ai são muito curtos, desencontrados. Mas continuo na luta.

Obrigado !

23 Respostas

Morpheus_Urubu

E fod** viu, acabei de ler a documentacao do RichFaces no site JBoss, está realmente ótima, agora pergunta se tem algum FAQ, Troubleshoot ? NADA !

Alguem poderia me ajudar ?

rogeriuslima

Fala cara, blz?

Este erro que vc postou ele ocorre porque o glassfish não conseguiu fazer o deploy da sua aplicação por algum motivo.
Pra saber qual a razão vc tem postar o erro aqui. Dá uma olhada no arquivo de log do glassfish, é só vc ir na tela de admim que tem uma opção de logs lá. Vc pode acessar esta tela de admim pelo netbeans, na aba serviços tem os servidores, se eu não me engano é só clicar com o botão direito do mouse que aparece a opção.
Ou então ficar observando as mensagens do servidor no momento em que vc manda fazer o deploy.
Quanto as suas dúvidas, JSF é um framework voltado para a criação de interfaces com o usuario e tem uma especificação e uma implementação de referencia. Richfaces, Icefaces e outros são bibliotecas de componentes construidos seguindo a especificação de JSF, ou seja, são componentes customizados. E facelets é para criação de templantes com jsf, saca utilizar o mesmo layout em um site inteiro utilizando um template padrão.
Se vc quiser material sobre jsf, deixa o seu email que eu te mando.
Abraços.

anderson.bonavides

Não existe nenhuma incompatibilidade. A primeira coisa a se fazer é atualizar todas as bibliotecas do seu projeto, pegando as mais recentes, pois para funcionar o Richfaces 3.3.0.GA requer elas atualizadas.

JSF é uma especificação da Sun.
Facelets é um framework que funciona junto com o JSF que serve para não ficar repetindo HTML em seu projeto. Só basta fazer o template 1x e depois incluir ele nas suas páginas XHTML. Da para organizar, topo, titulo, menu…
Richfaces é um componente dos varios existentes ai na net que serve para melhor te auxiliar na utilização, de menus, dataTable, mensagens de validação e uma série de coisas…

Como ja disse antes atualiza as tuas libs e posta elas aqui junto.

Morpheus_Urubu

opa quero sim cara, meu email é [email removido] !

Sobre o Glassfish, vamos la:

<blockquote>  2895	INFO	JBI framework startup complete.(details)	com.sun.jbi.framework	May 12, 2009 10:09:20.453	_ThreadID=14;_ThreadName=httpWorkerThread-4848-4;

2894	INFO	Initializing Suns JavaServer Faces implementation (1.2_04-b22-p05) for context ‘’(details)	javax.enterprise.resource.webcontainer.jsf.config	May 12, 2009 10:08:39.593	_ThreadID=13;_ThreadName=httpWorkerThread-4848-0;;

2893	INFO	Application server startup complete.(details)	javax.enterprise.system.core	May 12, 2009 10:08:01.031	_ThreadID=10;_ThreadName=main;

2892	INFO	Self Management Rules service is enabled(details)	javax.enterprise.system.core.selfmanagement	May 12, 2009 10:08:01.000	_ThreadID=10;_ThreadName=main;

2891	INFO	SharedSecrets.getJavaNetAccess()=java.net.URLClassLoader$7@1003d5d(details)	javax.enterprise.system.stream.out	May 12, 2009 10:08:00.031	_ThreadID=10;_ThreadName=main;

2890	INFO	true repositories: /WEB-INF/classes/ ----------> Parent Classloader: EJBClassLoader : urlSet  (details)	javax.enterprise.system.stream.out	May 12, 2009 10:08:00.031	_ThreadID=10;_ThreadName=main;

2889	SEVERE	Startup of context /WebTarefas failed due to previous errors(details)	org.apache.catalina.core.StandardContext	May 12, 2009 10:07:59.921	_ThreadID=10;_ThreadName=main;_RequestID=532fd459-d0d8-45d5-9dac-a51292255569;

2888	SEVERE	Exception sending context initialized event to listener instance of class com.sun.faces.config.Confi (details)	javax.enterprise.system.container.web	May 12, 2009 10:07:59.921	_ThreadID=10;_ThreadName=main;_RequestID=532fd459-d0d8-45d5-9dac-a51292255569;

2887	WARNING	org.ajax4jsf.renderkit.ChameleonRenderKitFactory at javax.faces.FactoryFinder.getImplGivenPreviousI (details)	javax.enterprise.system.stream.err	May 12, 2009 10:07:59.562	_ThreadID=10;_ThreadName=main;_RequestID=532fd459-d0d8-45d5-9dac-a51292255569;

2886	INFO	Initializing Suns JavaServer Faces implementation (1.2_04-b22-p05) for context /WebTarefas(details)	javax.enterprise.resource.webcontainer.jsf.config	May 12, 2009 10:07:58.031	_ThreadID=10;_ThreadName=main;/WebTarefas;

2885	INFO	Starting Sun-Java-System/Application-Server HTTP/1.1 on 4848(details)	javax.enterprise.system.container.web	May 12, 2009 10:07:57.046	_ThreadID=10;_ThreadName=main;4848;

2884	INFO	Starting Sun-Java-System/Application-Server HTTP/1.1 on 8181(details)	javax.enterprise.system.container.web	May 12, 2009 10:07:56.953	_ThreadID=10;_ThreadName=main;8181;

2883	INFO	Starting Sun-Java-System/Application-Server HTTP/1.1 on 8080(details)	javax.enterprise.system.container.web	May 12, 2009 10:07:56.765	_ThreadID=10;_ThreadName=main;8080;

2882	INFO	Starting Sun-Java-System/Application-Server.(details)	javax.enterprise.system.container.web	May 12, 2009 10:07:56.093	_ThreadID=10;_ThreadName=main;

2881	WARNING	j2eeType=WebModule,name=appWebTarefas,J2EEServer=server,J2EEApplication=null,category=runtime" due t… (details)	javax.enterprise.system.tools.admin	May 12, 2009 10:07:56.062	_ThreadID=10;_ThreadName=main;_RequestID=532fd459-d0d8-45d5-9dac-a51292255569;

2880	INFO	JBI framework ready to accept requests.(details)	com.sun.jbi.framework	May 12, 2009 10:07:56.015	_ThreadID=10;_ThreadName=main;

2879	INFO	All ejb(s) of [__ejb_container_timer_app] loaded successfully!(details)</blockquote>
Morpheus_Urubu

anderson.bonavides:
diegocharles:

Logo após, copiei para o diretório /WEB-INF/lib do meu projeto, os seguintes JARS:

  1. Alguem poderia me dizer o que estou fazendo de errado dessa vez, e se, existe alguma incompatilibidade entre o RichFaces e o JSF ?

Não existe nenhuma incompatibilidade. A primeira coisa a se fazer é atualizar todas as bibliotecas do seu projeto, pegando as mais recentes, pois para funcionar o Richfaces 3.3.0.GA requer elas atualizadas.

JSF é uma especificação da Sun.
Facelets é um framework que funciona junto com o JSF que serve para não ficar repetindo HTML em seu projeto. Só basta fazer o template 1x e depois incluir ele nas suas páginas XHTML. Da para organizar, topo, titulo, menu…
Richfaces é um componente dos varios existentes ai na net que serve para melhor te auxiliar na utilização, de menus, dataTable, mensagens de validação e uma série de coisas…

Como ja disse antes atualiza as tuas libs e posta elas aqui junto.

Sobre as libs estarem atualizadas, eu as baixei hoje novamente no site Jboss, a ultima versão, 3.3.0. Vou posta-las novamente aqui:

[b] richfaces-impl-3.3.0.GA
richfaces-ui-3.3.0.GA
richfaces-api-3.3.0.GA

anderson.bonavides

Vc precisa postar todas as libs utilizadas no seu projeto.
jsf-api.jar
jsf-impl.jar
cammons-bennutls.jar…

Morpheus_Urubu

ok vamos la !

anderson.bonavides

commons-digester.jar
commons-collectionsj.jar
commons-logging.jar
jsf-api-1.2.jar
jsf-impl-1.2.jar
jstl-1.2.jar
jsp-api-2.0.jar
servlet-api-2.5.jar
taglibs-1.1.2.jar
jsf-facelets-1.1.14.jar
el-api-1.0.jar
myfaces-api-1.2.6.jar
myfaces-impl-1.2.6.jar
javassist-3.8.0.GA.jar

Morpheus_Urubu

anderson.bonavides:
commons-digester.jar
commons-collectionsj.jar
commons-logging.jar
jsf-api-1.2.jar
jsf-impl-1.2.jar
jstl-1.2.jar
jsp-api-2.0.jar
servlet-api-2.5.jar
taglibs-1.1.2.jar
jsf-facelets-1.1.14.jar
el-api-1.0.jar
myfaces-api-1.2.6.jar
myfaces-impl-1.2.6.jar
javassist-3.8.0.GA.jar

Pelo que vi na comparação, voce me postou as “faltantes”, porem eu não entendo, pois meu projeto funcionava normalmente antes de eu tentar jogar as libs especificas no richfaces no diretorio /WEB-INF/lib . Eu uso o Netbeans 6.5, e quando inicie o projeto, escolhi la na opção quando a gente monta um novo projeto, pra ele incluir os frameworks JSF e Hibernate. Será que ele criou um path para um outro caminho default pra essas libs ?

anderson.bonavides

diegocharles:
anderson.bonavides:
commons-digester.jar
commons-collectionsj.jar
commons-logging.jar
jsf-api-1.2.jar
jsf-impl-1.2.jar
jstl-1.2.jar
jsp-api-2.0.jar
servlet-api-2.5.jar
taglibs-1.1.2.jar
jsf-facelets-1.1.14.jar
el-api-1.0.jar
myfaces-api-1.2.6.jar
myfaces-impl-1.2.6.jar
javassist-3.8.0.GA.jar

Pelo que vi na comparação, voce me postou as “faltantes”, porem eu não entendo, pois meu projeto funcionava normalmente antes de eu tentar jogar as libs especificas no richfaces no diretorio /WEB-INF/lib . Eu uso o Netbeans 6.5, e quando inicie o projeto, escolhi la na opção quando a gente monta um novo projeto, pra ele incluir os frameworks JSF e Hibernate. Será que ele criou um path para um outro caminho default pra essas libs ?

É pq para funcionar o RichFaces é necessário algumas dependências com pode ser visto ai. O fato de funcionar antes é pq estava apenas JSF puro. Você está utilizando facelets?

Morpheus_Urubu

anderson.bonavides:
diegocharles:
anderson.bonavides:
commons-digester.jar
commons-collectionsj.jar
commons-logging.jar
jsf-api-1.2.jar
jsf-impl-1.2.jar
jstl-1.2.jar
jsp-api-2.0.jar
servlet-api-2.5.jar
taglibs-1.1.2.jar
jsf-facelets-1.1.14.jar
el-api-1.0.jar
myfaces-api-1.2.6.jar
myfaces-impl-1.2.6.jar
javassist-3.8.0.GA.jar

Pelo que vi na comparação, voce me postou as “faltantes”, porem eu não entendo, pois meu projeto funcionava normalmente antes de eu tentar jogar as libs especificas no richfaces no diretorio /WEB-INF/lib . Eu uso o Netbeans 6.5, e quando inicie o projeto, escolhi la na opção quando a gente monta um novo projeto, pra ele incluir os frameworks JSF e Hibernate. Será que ele criou um path para um outro caminho default pra essas libs ?

É pq para funcionar o RichFaces é necessário algumas dependências com pode ser visto ai. O fato de funcionar antes é pq estava apenas JSF puro. Você está utilizando facelets?

Não, ainda não estou usando o facelets, mas pretendo experimentar ainda hoje, pois li que o desempenho dele é melhor do que o JSP.

Essas dependências eu tenho que baixar uma por uma, procurando-as no google, ou já existe um pacote pre-definido ?

anderson.bonavides

Você tem que baixar. A lib "jsf-facelets-1.1.14.jar " é para o facelets.

Morpheus_Urubu

Ok, mas sobre todas essas libs acima citadas, tida como dependencias do RichFaces, existe algum pacote com elas ou eu tenho que “caçar” uma por uma no google ?

anderson.bonavides

Vc tem que baixar uma por uma.

Morpheus_Urubu

Amigo, terminei agora de fazer o download de todas as bibliotecas, rodei, e infelizmente nada !!!

Alguem tem mais alguma sugestao ? Obrigado !

rogeriuslima

Baixa a implementação do myfaces que vem todos.
E parece que tão listando o myfaces com a implementação RI ao mesmo tempo, isso tá errado.
Lembre-se que é ou uma ou outra.

Morpheus_Urubu

rogeriuslima:
Baixa a implementação do myfaces que vem todos.
E parece que tão listando o myfaces com a implementação RI ao mesmo tempo, isso tá errado.
Lembre-se que é ou uma ou outra.

Vamos la, to baixando… mas o que seria esse myfaces ?? algo concorrente ao RichFaces ? Cara, to hiper confuso aqui ja com tantos nomes diferentes e concorrentes… hehehe

Morpheus_Urubu

Pois é pessoal, muito obrigado a quem me ajudou !

Resolvi o problema: simplesmente reiniciei o PC, e tudo funcionou que é uma beleza ¬¬

Depois de 6 horas passando raiva, finalmente funcionou !

Obrigado a todos !

rogeriuslima

Muita calma nessa hora!!!
Quando agente fala do JSF, geralmente estamos falando da implementação de referencia (RI). Essa RI implementa a especificação.
O Myfaces é outra implementação de JSF, as funcionalidades são as mesmas.
Pensa assim: JEE é uma especificação que possue diversas implementações como tomcat, glassfish, jboss, etc. JSF RI e Myfaces são duas implementações diferentes da mesma especificação.
Myfaces Tomahawk, Icefaces, Richfaces, etc são bibliotecas de componentes feitos seguindo esta especificação e dependem de uma implementação (ou RI, ou Myfaces, etc).

Morpheus_Urubu

Entendi ! Cara valeu ai pela ajuda ! Eu perdi tempo, porem aprendi algumas coisas novas hoje, inclusive sobre a existencia do Facelets, sobre estudar mais a base do JSF, coisas assim, entao o tempo não foi perdido em vão !

AVANTE !!!

V

Só aproveitando que o tópico ainda está quente e que eu estou passando pelo mesmo problema (o que está sendo resolvido com a ajuda deste tópico), alguém sabe uma fonte da qual posso fazer o download da taglibs-1.1.2.jar?
Eu digitei download taglibs-1.1.2.jar e taglibs-1.1.2.jar download no Google e não achei nada. Aliás, achei um link para este tópico do fórum. Hehehe!

Flws!

V

Galera, eu fiz todas estas atualizações aí. No entanto, ainda estou tendo o seguinte problema:

SEVERE: Error configuring application listener of class com.sun.faces.config.ConfigListener
java.lang.ClassNotFoundException: com.sun.faces.config.ConfigListener
	at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1387)
	at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1233)
	at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:3786)
	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)

E a aplicação não sobe de jeito nenhum. Se alguém puder me ajudar eu ficaria muito feliz porque já faz 3 dias que estou perdendo tempo com isso. Uso JSF 1.2 + Facelets 1.1.4 + Rich Faces 3.3.1 GA + Tomcat 6.
Sei que tem um monte de lugar que fala que Tomcat 6 está dando problema para rodar este tipo de configuração, mas já vi relatos de gente que consegue rodar isso aí tudo até em Tomcat 5.5.

Por favor, eu realmente estou precisando de ajuda!

juniorsatanas

ANDERSON TUDOBOM ?

manda o material para mim por favor : [email removido]

Se você precisa de AJAX para um projeto que vá
entrar em produção HOJE,o que vc utilizaria MyFaces Trinidad + Facelets + AJAX4JSF

  • JBoss Seam. ou MyFaces Trinidad +
    ICEfaces.

abraço.

Criado 12 de maio de 2009
Ultima resposta 3 de jan. de 2010
Respostas 23
Participantes 5