1 2 3 Previous Next 38 Replies Latest reply on Jun 21, 2009 6:29 AM by nbelaevski Go to original post
      • 15. Re: becoming involved with the richFaces/a4j project
        jbalunas

        Hi fmarwede,

        I appreciate your efforts here and I could not agree more that in the current state it is difficult to get started working with RichFaces from a development point of view. We are going to make this easier.

        For me the best place to get started was to walk through a very simple application and debug through the RichFaces JSF and JS. This gave me a basic foundation that I could apply to reviewing the RichFaces source code and components.

        Nick will likely have some other advice as well.

        Regards,
        Jay

        • 16. Re: becoming involved with the richFaces/a4j project
          nbelaevski

           

          "fmarwede" wrote:
          It is working...Step 2 was successfully completed in 49 min...Step 3 ins 16 minutes.

          Thank you very much! Now I can explore the whole thing.

          One more little question: What I have to do, when I have changed or updated something? clean and install takes almost an hour! Do you do that everyday?


          We usually do full build in the morning. For me it takes 30 minutes. Also there is no need to execute Eclipse metadata generation unless there are some changes in the versions of libraries used; just refresh projects after build.

          How do we test new code. We create special small developers demo projects (you can see them in samples directory), that are dependent not on the assembled version of RF, but on the component projects and run them from Eclipse. If they are attached as projects (modules in "Java EE dependencies" tab) and not as .jar files, Eclipse automatically compiles and redeploys them unless the changes are in .jspx files (or in script files that are assembled together using ANT - there are three projects doing that: impl, scrollableDataTable and extendedDataTable).

          There is a special module that assembles all ui\* projects into richfaces-ui.jar, it is called ui\assembly. If you need richfaces-ui.jar that contains your recent changes, just build (mvn clean install) small ui\* projects and then build ui\assembly.

          • 17. Re: becoming involved with the richFaces/a4j project
            nbelaevski

             

            "fmarwede" wrote:


            So my next question: What would you suggest for training? In my opinion it would be the best to start with a simple component, and the most simple configuration of projects possible, so I can change anything, build and test it with a small test web application to learn this cycle and to learn what is overall involved for developing a RF component.


            You can take something simple, like rich:togglePanel or rich:inputNumberSpinner and learn how to enhance it with some functionality, like adding AJAX updates, additional attributes etc.

            Google books have a nice book on JSF publicly accessible: http://books.google.com.by/books?id=Iv9r-CT6ZwwC&dq=pro+jsf+and+ajax&printsec=frontcover&source=bn&hl=be&ei=KaauSaqvAouW1QWNjNifDg&sa=X&oi=book_result&resnum=4&ct=result you can take a look at the beginning chapters...

            • 18. Re: becoming involved with the richFaces/a4j project

              Thanks again, guys.


              For me the best place to get started was to walk through a very simple application and debug through the RichFaces JSF and JS. This gave me a basic foundation that I could apply to reviewing the RichFaces source code and components.


              Okay, I'll try that.


              We create special small developers demo projects (you can see them in samples directory), that are dependent not on the assembled version of RF, but on the component projects and run them from Eclipse. If they are attached as projects (modules in "Java EE dependencies" tab) and not as .jar files, Eclipse automatically compiles and redeploys them unless the changes are in .jspx files (or in script files that are assembled together using ANT - there are three projects doing that: impl, scrollableDataTable and extendedDataTable).


              Generally I understand that. Let us assume, I'll start with D&D. After the built I import first the drag-drop project into eclipse and then, because this one depends on them, richfaces-api, richfaces-impl and richfaces-test. That works fine for me.

              First question: I've got 86 error in problem view (only *.xml and *.mod files). For example in drag-drop/src/main/config/component/dragSupport.xml in line 97:

              The content of element type "listener" must match "(name,listenerclass,componentclass,eventclass,methodname?,tag?,taghandler?,property*)".
              


              Can I ignore them or remove them with some Eclipse settings? Or do I have to handle them seriously?

              Let's assume this problem is solved. Next step: I execute mvn clean install in \trunk\samples\dragDropDemo, so I get a target folder there.

              Second Question: What is now the common next step? Putting the WAR on a server, or import this project in eclipse too and put it here on a server?

              Let's assume this problem is solved too :-)

              Third and last question: Is this the common approach if i wann changing something (and testing it) on the drag & drop component?

              Sorry for all my questions, maybe I'm a little bit slow in thinking...

              • 19. Re: becoming involved with the richFaces/a4j project

                Sorry I didn't saw your last post. Thank you for the tips!

                • 20. Re: becoming involved with the richFaces/a4j project
                  nbelaevski

                   

                  "fmarwede" wrote:
                  Thanks again, guys.

                  Generally I understand that. Let us assume, I'll start with D&D. After the built I import first the drag-drop project into eclipse and then, because this one depends on them, richfaces-api, richfaces-impl and richfaces-test. That works fine for me.

                  Good
                  "fmarwede" wrote:
                  First question: I've got 86 error in problem view (only *.xml and *.mod files). For example in drag-drop/src/main/config/component/dragSupport.xml in line 97:

                  The content of element type "listener" must match "(name,listenerclass,componentclass,eventclass,methodname?,tag?,taghandler?,property*)".
                  


                  Can I ignore them or remove them with some Eclipse settings? Or do I have to handle them seriously?

                  You can ignore them unless module is not built successfully/runs incorrectly. There are some Eclipse validation issues with included files and .jspx templates.

                  "fmarwede" wrote:
                  Let's assume this problem is solved. Next step: I execute mvn clean install in \trunk\samples\dragDropDemo, so I get a target folder there.

                  Second Question: What is now the common next step? Putting the WAR on a server, or import this project in eclipse too and put it here on a server?

                  You can do the following:
                  mvn clean package and run the built WAR under Tomcat
                  mvn clean jetty:run and navigate to localhost:8080
                  Import project into IDE, deploy to server from there and launch the server.

                  "fmarwede" wrote:
                  Let's assume this problem is solved too :-)

                  Third and last question: Is this the common approach if i wann changing something (and testing it) on the drag & drop component?

                  Sorry for all my questions, maybe I'm a little bit slow in thinking...

                  When close to releases we usually add testing of fully built RF with livedemo (it is located in samples\richfaces-demo) to check that assembled library behaves well too.

                  • 21. Re: becoming involved with the richFaces/a4j project

                     


                    You can do the following:
                    mvn clean package and run the built WAR under Tomcat
                    mvn clean jetty:run and navigate to localhost:8080
                    Import project into IDE, deploy to server from there and launch the server.


                    Sorry, next question: With all three possibilities I got an exception like this...looks like a library is not found. How is that possible?

                    2009-03-05 07:32:54.488::WARN: /dragDropDemo/
                    com.sun.faces.mgbean.ManagedBeanCreationException: Unable to create managed bean
                     bean. The following problems were found:
                     - Bean or property class org.richfaces.Bean for managed bean bean cannot be
                     found.
                     at com.sun.faces.mgbean.BeanManager.create(BeanManager.java:204)
                     at com.sun.faces.el.ManagedBeanELResolver.getValue(ManagedBeanELResolver
                    .java:86)
                     at javax.el.CompositeELResolver.getValue(CompositeELResolver.java:143)
                     at com.sun.faces.el.FacesCompositeELResolver.getValue(FacesCompositeELRe
                    solver.java:72)
                     at com.sun.el.parser.AstIdentifier.getValue(AstIdentifier.java:86)
                     at com.sun.el.parser.AstValue.getValue(AstValue.java:127)
                     at com.sun.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:206)
                    
                     at javax.faces.component.UIOutput.getValue(UIOutput.java:184)
                     at com.sun.faces.renderkit.html_basic.HtmlBasicInputRenderer.getValue(Ht
                    mlBasicInputRenderer.java:201)
                     at com.sun.faces.renderkit.html_basic.HtmlBasicRenderer.getCurrentValue(
                    HtmlBasicRenderer.java:284)
                     at com.sun.faces.renderkit.html_basic.HtmlBasicRenderer.encodeEnd(HtmlBa
                    sicRenderer.java:154)
                     at javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:
                    861)
                     at com.sun.faces.renderkit.html_basic.HtmlBasicRenderer.encodeRecursive(
                    HtmlBasicRenderer.java:242)
                     at com.sun.faces.renderkit.html_basic.GroupRenderer.encodeChildren(Group
                    Renderer.java:106)
                     at javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.
                    java:837)
                     at javax.faces.component.UIComponent.encodeAll(UIComponent.java:930)
                     at javax.faces.render.Renderer.encodeChildren(Renderer.java:148)
                     at javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.
                    java:837)
                     at com.sun.faces.renderkit.html_basic.HtmlBasicRenderer.encodeRecursive(
                    HtmlBasicRenderer.java:234)
                     at com.sun.faces.renderkit.html_basic.GridRenderer.renderRow(GridRendere
                    r.java:180)
                     at com.sun.faces.renderkit.html_basic.GridRenderer.encodeChildren(GridRe
                    nderer.java:127)
                     at javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.
                    java:837)
                     at javax.faces.component.UIComponent.encodeAll(UIComponent.java:930)
                     at javax.faces.component.UIComponent.encodeAll(UIComponent.java:933)
                     at com.sun.faces.application.ViewHandlerImpl.doRenderView(ViewHandlerImp
                    l.java:266)
                     at com.sun.faces.application.ViewHandlerImpl.renderView(ViewHandlerImpl.
                    java:197)
                     at org.ajax4jsf.application.ViewHandlerWrapper.renderView(ViewHandlerWra
                    pper.java:100)
                     at org.ajax4jsf.application.AjaxViewHandler.renderView(AjaxViewHandler.j
                    ava:176)
                     at com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePha
                    se.java:110)
                     at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:100)
                     at com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:139)
                     at javax.faces.webapp.FacesServlet.service(FacesServlet.java:266)
                     at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:487
                    )
                     at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(Servlet
                    Handler.java:1093)
                     at org.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:178)
                    
                     at org.ajax4jsf.webapp.BaseFilter.handleRequest(BaseFilter.java:290)
                     at org.ajax4jsf.webapp.BaseFilter.processUploadsAndHandleRequest(BaseFil
                    ter.java:364)
                     at org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:491)
                     at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(Servlet
                    Handler.java:1084)
                     at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:3
                    60)
                     at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.jav
                    a:216)
                     at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:1
                    81)
                     at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:7
                    12)
                     at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:405)
                    
                     at org.mortbay.jetty.servlet.Dispatcher.forward(Dispatcher.java:268)
                     at org.mortbay.jetty.servlet.Dispatcher.forward(Dispatcher.java:126)
                     at org.apache.jasper.runtime.PageContextImpl.forward(PageContextImpl.jav
                    a:767)
                     at org.apache.jsp.index_jsp._jspService(org.apache.jsp.index_jsp:51)
                     at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:93)
                     at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
                     at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper
                    .java:373)
                     at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:4
                    77)
                     at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:371)
                     at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
                    


                    • 22. Re: becoming involved with the richFaces/a4j project

                      Let me add: This exception was copied from jetty console. I tried the same with inputNumberSpinner, got the same error. This time I post from eclipse tomcat console:

                      SCHWERWIEGEND: Error configuring application listener of class com.sun.faces.config.ConfigureListener
                      java.lang.NoClassDefFoundError: javax/el/CompositeELResolver
                       at java.lang.Class.getDeclaredConstructors0(Native Method)
                       at java.lang.Class.privateGetDeclaredConstructors(Unknown Source)
                       at java.lang.Class.getConstructor0(Unknown Source)
                       at java.lang.Class.newInstance0(Unknown Source)
                       at java.lang.Class.newInstance(Unknown Source)
                       at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:3713)
                       at org.apache.catalina.core.StandardContext.start(StandardContext.java:4216)
                       at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1014)
                       at org.apache.catalina.core.StandardHost.start(StandardHost.java:736)
                       at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1014)
                       at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443)
                       at org.apache.catalina.core.StandardService.start(StandardService.java:448)
                       at org.apache.catalina.core.StandardServer.start(StandardServer.java:700)
                       at org.apache.catalina.startup.Catalina.start(Catalina.java:552)
                       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:295)
                       at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:433)
                      


                      Tried to google this thing, but no solution in sight. I can't even say if it is only a simple case of anot found library or something else...

                      • 23. Re: becoming involved with the richFaces/a4j project
                        nbelaevski

                         

                        "fmarwede" wrote:

                        You can do the following:
                        mvn clean package and run the built WAR under Tomcat
                        mvn clean jetty:run and navigate to localhost:8080
                        Import project into IDE, deploy to server from there and launch the server.


                        Sorry, next question: With all three possibilities I got an exception like this...looks like a library is not found. How is that possible?

                        2009-03-05 07:32:54.488::WARN: /dragDropDemo/
                        com.sun.faces.mgbean.ManagedBeanCreationException: Unable to create managed bean
                         bean. The following problems were found:
                         - Bean or property class org.richfaces.Bean for managed bean bean cannot be
                         found.
                         at com.sun.faces.mgbean.BeanManager.create(BeanManager.java:204)
                         at com.sun.faces.el.ManagedBeanELResolver.getValue(ManagedBeanELResolver
                        .java:86)
                         at javax.el.CompositeELResolver.getValue(CompositeELResolver.java:143)
                         at com.sun.faces.el.FacesCompositeELResolver.getValue(FacesCompositeELRe
                        solver.java:72)
                         at com.sun.el.parser.AstIdentifier.getValue(AstIdentifier.java:86)
                         at com.sun.el.parser.AstValue.getValue(AstValue.java:127)
                         at com.sun.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:206)
                        
                         at javax.faces.component.UIOutput.getValue(UIOutput.java:184)
                         at com.sun.faces.renderkit.html_basic.HtmlBasicInputRenderer.getValue(Ht
                        mlBasicInputRenderer.java:201)
                         at com.sun.faces.renderkit.html_basic.HtmlBasicRenderer.getCurrentValue(
                        HtmlBasicRenderer.java:284)
                         at com.sun.faces.renderkit.html_basic.HtmlBasicRenderer.encodeEnd(HtmlBa
                        sicRenderer.java:154)
                         at javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:
                        861)
                         at com.sun.faces.renderkit.html_basic.HtmlBasicRenderer.encodeRecursive(
                        HtmlBasicRenderer.java:242)
                         at com.sun.faces.renderkit.html_basic.GroupRenderer.encodeChildren(Group
                        Renderer.java:106)
                         at javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.
                        java:837)
                         at javax.faces.component.UIComponent.encodeAll(UIComponent.java:930)
                         at javax.faces.render.Renderer.encodeChildren(Renderer.java:148)
                         at javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.
                        java:837)
                         at com.sun.faces.renderkit.html_basic.HtmlBasicRenderer.encodeRecursive(
                        HtmlBasicRenderer.java:234)
                         at com.sun.faces.renderkit.html_basic.GridRenderer.renderRow(GridRendere
                        r.java:180)
                         at com.sun.faces.renderkit.html_basic.GridRenderer.encodeChildren(GridRe
                        nderer.java:127)
                         at javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.
                        java:837)
                         at javax.faces.component.UIComponent.encodeAll(UIComponent.java:930)
                         at javax.faces.component.UIComponent.encodeAll(UIComponent.java:933)
                         at com.sun.faces.application.ViewHandlerImpl.doRenderView(ViewHandlerImp
                        l.java:266)
                         at com.sun.faces.application.ViewHandlerImpl.renderView(ViewHandlerImpl.
                        java:197)
                         at org.ajax4jsf.application.ViewHandlerWrapper.renderView(ViewHandlerWra
                        pper.java:100)
                         at org.ajax4jsf.application.AjaxViewHandler.renderView(AjaxViewHandler.j
                        ava:176)
                         at com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePha
                        se.java:110)
                         at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:100)
                         at com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:139)
                         at javax.faces.webapp.FacesServlet.service(FacesServlet.java:266)
                         at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:487
                        )
                         at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(Servlet
                        Handler.java:1093)
                         at org.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:178)
                        
                         at org.ajax4jsf.webapp.BaseFilter.handleRequest(BaseFilter.java:290)
                         at org.ajax4jsf.webapp.BaseFilter.processUploadsAndHandleRequest(BaseFil
                        ter.java:364)
                         at org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:491)
                         at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(Servlet
                        Handler.java:1084)
                         at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:3
                        60)
                         at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.jav
                        a:216)
                         at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:1
                        81)
                         at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:7
                        12)
                         at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:405)
                        
                         at org.mortbay.jetty.servlet.Dispatcher.forward(Dispatcher.java:268)
                         at org.mortbay.jetty.servlet.Dispatcher.forward(Dispatcher.java:126)
                         at org.apache.jasper.runtime.PageContextImpl.forward(PageContextImpl.jav
                        a:767)
                         at org.apache.jsp.index_jsp._jspService(org.apache.jsp.index_jsp:51)
                         at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:93)
                         at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
                         at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper
                        .java:373)
                         at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:4
                        77)
                         at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:371)
                         at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
                        


                        Possible if parallel build was running in Eclipse; I think it cleared target folder, but was not able to compile the file.

                        • 24. Re: becoming involved with the richFaces/a4j project
                          nbelaevski

                           

                          "fmarwede" wrote:
                          Let me add: This exception was copied from jetty console. I tried the same with inputNumberSpinner, got the same error. This time I post from eclipse tomcat console:

                          SCHWERWIEGEND: Error configuring application listener of class com.sun.faces.config.ConfigureListener
                          java.lang.NoClassDefFoundError: javax/el/CompositeELResolver
                           at java.lang.Class.getDeclaredConstructors0(Native Method)
                           at java.lang.Class.privateGetDeclaredConstructors(Unknown Source)
                           at java.lang.Class.getConstructor0(Unknown Source)
                           at java.lang.Class.newInstance0(Unknown Source)
                           at java.lang.Class.newInstance(Unknown Source)
                           at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:3713)
                           at org.apache.catalina.core.StandardContext.start(StandardContext.java:4216)
                           at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1014)
                           at org.apache.catalina.core.StandardHost.start(StandardHost.java:736)
                           at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1014)
                           at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443)
                           at org.apache.catalina.core.StandardService.start(StandardService.java:448)
                           at org.apache.catalina.core.StandardServer.start(StandardServer.java:700)
                           at org.apache.catalina.startup.Catalina.start(Catalina.java:552)
                           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:295)
                           at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:433)
                          


                          Tried to google this thing, but no solution in sight. I can't even say if it is only a simple case of anot found library or something else...


                          Tomcat should be 6.0, because examples are mostly JSP-based and we use JSF 1.2. Please clarify what is your Tomcat version.

                          • 25. Re: becoming involved with the richFaces/a4j project

                             


                            Possible if parallel build was running in Eclipse; I think it cleared target folder, but was not able to compile the file.


                            Okay, i'll check this.


                            Tomcat should be 6.0, because examples are mostly JSP-based and we use JSF 1.2. Please clarify what is your Tomcat version.


                            Yes. That was it!

                            Again thank you very much for your help to start up...after digging me in a few days I think I'll start with some of the easiest things like this:

                            https://jira.jboss.org/jira/browse/RF-4104

                            https://jira.jboss.org/jira/browse/RF-5966

                            https://jira.jboss.org/jira/browse/RF-1404

                            I don't think you need me to handle them but when I'll have resolved them I'll let you know, may be there is some more serious stuff to do for me.

                            • 26. Re: becoming involved with the richFaces/a4j project
                              nbelaevski

                              Great! Please feel free to ask if you get some more questions.

                              • 27. Re: becoming involved with the richFaces/a4j project
                                tnt9062

                                I am also tried to compile source, all steps are done (thx for posters in this topic), but have some questions:

                                after import JIRA-DATA project its needed commons-beanutils-1.8, but in maven depends i see only commons-beanutils-1.7.
                                How to change this dependence to 1.8 ?

                                • 28. Re: becoming involved with the richFaces/a4j project
                                  nbelaevski
                                  • 29. Re: becoming involved with the richFaces/a4j project
                                    tnt9062

                                    thx !
                                    i created simple app and set depends for it.

                                    For scrollableDataTable app depends:
                                    dataTable,
                                    richfaces-api,
                                    richfaces-test,
                                    richfaces-impl,
                                    core,
                                    scrollableDataTable.

                                    But still have jsp error

                                    Cannot find the tag library descriptor for "http://richfaces.org/rich"
                                    
                                    in line
                                    
                                    <%@ taglib uri="http://richfaces.org/rich" prefix="rich"%>