Problema com Richfaces e JSF

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:

[code]<?xml version="1.0" encoding="UTF-8"?>


Ajax4jsf Filter
ajax4jsf
org.ajax4jsf.Filter


ajax4jsf
Faces Servlet
REQUEST
FORWARD
INCLUDE

<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>

[/code]

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 !

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 ?

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.

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.

opa quero sim cara, meu email é diegocharles@msn.com !

Sobre o Glassfish, vamos la:

[quote] 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 Sun’s 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 Sun’s 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)[/quote]

[quote=anderson.bonavides][quote=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 ?
    [/quote]
    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.

[/quote]

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

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

ok vamos la !

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

[quote=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

[/quote]

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 ?

[quote=diegocharles][quote=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

[/quote]

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 ?[/quote]

É 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?

[quote=anderson.bonavides][quote=diegocharles][quote=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

[/quote]

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 ?[/quote]

É 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?[/quote]

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 ?

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

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 ?

Vc tem que baixar uma por uma.

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

Alguem tem mais alguma sugestao ? Obrigado !

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.

[quote=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.[/quote]
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

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 !

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).