I use and recommend Seam. In doing so I also recommend using EJB3.0 with Hibernate as the underlying implementation. The support for EJB over plain hibernate is better from the Seam team.
As for other libraries, it is a personnal choice (no one ever said that the open source community doesn't present different options). With using Seam & Facelets I have seen no need for Shale or Spring. Seam & Facelets combined have similar functionality to Spring and Shale. When I looked at Spring, I decided that it added way too much complexity for very little feature set, but that is my opinion. I'm sure others would swear by it. I would read each of the web pages with the associated documentation for each technology, read their archives and see for yourself what sounds good. For JBoss, I recommend reading their manual and looking at their examples (all of which are using Facelets BTW). The reason I chose Seam is that it handles the ORM situation very well, especially with lazy loading of collections. As for EJB versus just Hibernate by itself, realize that EJB3.0 is much different and better than previous specifications. Entity beans in EJB3 are simply Hibernate objects now. On 10/29/06, Nicklas Karlsson <[EMAIL PROTECTED]> wrote:
> * use hibernate for ORM (instead of the whole EJB stuff) You could also consider JPA over Hibernate, they add another abstraction layer to the persistence. Of course, if you don't need it theres no point in adding it > What are other common/recommend practice? > * Do I need Spring? > * Do I need Shale? > * Do I need Seam? You don't "need" any of them but I have noticed that Spring does a nice job in handling "plumbing code" and simplifes changes that you might want to add later that influences the whole application. You might want to take a look at http://www.javaworld.com/javaworld/jw-07-2004/jw-0719-jsf.html for hints on application architechture, package structures etc.

