2 Replies Latest reply on Aug 10, 2007 5:32 PM by aerostra

    Tool for developing JSF controls in JBoss portal

    tex321

      Hello.

      Which tool is recommended for building JSF portlets in JBoss Portal. I am new at this and am just starting with development in JBoss portal. I have following functionality demands:
      - display of data from java beans in jsf table (first, last, next, previos) buttons + N entries per page
      - display of graphs that are created from java beans data (feeded through EJB session beans and at the end DB)
      - master detail relationships between entries (tables in jsf)

      What is best pratice for building such application. Should I use some tool like Java Studio Creator or are there better tools for building jsf portlets for JBoss portal.

      Thanks for any advice,

        • 1. Re: Tool for developing JSF controls in JBoss portal
          viggo.navarsete

          Have you looked at Netbeans? Here's a blog entry about visual JSF portlet development with Netbeans:
          http://blogs.sun.com/satya/entry/build_jsf_portlet_with_netbeans

          • 2. Re: Tool for developing JSF controls in JBoss portal
            aerostra

            Hi,

            I've been doing a project using Java Studio Creator(JSC) so I'll let you know a few of my thoughts and discoveries below.

            Firstly, I'm under the impression that Netbeans 6.0 is primarily for Java 6 and Jboss Portal works only with 1.4 & 1.5 (or v5). Just a point you should be aware of but someone correct me if I'm wrong. I also believe that the current version 5.x doesn't support the same functionality in Portlet design as JSC and v6 isn't going to do so for a while hence the preview downloads as it's one of the drawbacks of me not moving to it just yet as I like the drag n drop of JSC portlet production.

            Ok, my experiences of using JSC with Jboss Portal. If you like a challenge then it is great fun (ok, my idea of fun!) but you will need to do some background work to make it work properly. Its a nice learning curve and quite satisfying seeing it work in JBP. The Jboss/JSC Wiki entry is a very good start but I've also discovered that if you want to assign portlets to roles/users you will need to read the manual and create a file - I'll post something about it sometime in the next few days as it saved me a lot of issues and time - otherwise, you can just drop a portlet in as per the wiki entry and it will work.

            FYI: I use Java 1.5.x, JBP 2.4.1, MySql v5.0 and JSC 2 update 1 (full updates) for development on Windows XP and a live server running Solaris 10 with the same versions of JBP/MySql. They both work almost perfectly (a couple of minor issues but nothing major) as long as you added the additional files required by Jboss Portal.

            What doesn't work and it is documented (somewhere on the forum) are certain components. Something to do with the implementation of Myfaces and the JSC version. Most of the "Basic" components work (I have not used all of them as my project didn't need to) apart from the "Table" component.

            The BASIC table in JSC gives you a sort by column and this sends out a stream of error messages in JBP when it is used. Fortunately, the workaround is to just untick the table "sortable" box. That removes the sorting ability and the table works fine as does the "first/next" page type of thing you were asking in the first post. You can also set the number of rows returned. The major issue you will discover about the BASIC table component is that the empty message i.e. no results returned/found will also give you an endless stream of error data. I worked around it by running a separate SQL query to get a result and then allow the page with the table to be shown otherwise redirect it. Not exactly elegant but it works. The STANDARD table component does not give this error.

            Setting it up as Master detail (e.g. as a hyperlink to another page) works fine as my project relies heavily on that type of relationship. You can use the "Standard" component table but it requires a little more work to get the same functionality. You can guess correctly I didn't go down that route ;-)

            I have not used EJB nor graphical display yet so cannot comment. I guess the only way is to try it and see. There is something about using Jfreegraph (?) on the JSC forums but I don't think anyone has tried it with a portlet. Oh and the golden rule of using JSC and portlets: SessionBean. Just remember that portlets use the session bean not the request bean.

            There is still a lot of JSC functionality I haven't discovered yet but I've found that JSC is a good start as an IDE providing you spend the time to learn it and are happy to compromise on certain things. Don't expect to jump straight in and produce something you want as it will be really frustrating especially with portlets and JBP.

            Another thing you should be aware of is using the right database. My original choice was the JBP recommendation of Postgresql. This does work with JSC but I discovered a problem with Postgresql and JSC (think it was something to do with dropdown binding to the database) so I ended up swapping to MySql v5 (which obviously works well as I've mentioned above). Tried v4 but unfortunately v4 doesn't support views which I needed. Would like to have used Apache Derby but at the time I couldn't get it to work properly with JBP. Something I'll be trying to work on in the near future as ideally I'd want a pure java solution for a portal rather than the reliance on an RDMS.

            Finally, I'd also suggest you look into learning Hibernate as one of the pains of JSC is database access. Hibernate is the next learning topic for me! I could go into more detail but summarising, it was easier to use JDBC in certain instances and not the cached rowset.