Who has done large scale JSF projects?
Posted by Dominik
Whether successful or not, have you been involved in large scale JSF projects?
If yes, can you share some project statistics with the blogosphere and me in particular?
- The number of managed beans?
- The number of views?
- The number of custom components?
- The load on the server(s)? How many concurrent users?
- Which JSF implementation did you use?
- Did you use RAD tools?
- What where your pain points?
- What do you think is JSF’s sweetspot?
- Have you had concerns with bookmarkability?
- Would you write your next web-application using JSF and, if not, why not?
- Can you give a short description about the project?
I have been looking around for descriptions of real world JSF projects on the web but haven’t found many articles, so if you feel you can answer some of the questions above, please leave a comment or a trackback.
- S.: If I have missed the definitive resource on projects done with JSF in my search, please tell me so.


Hi Dominik,
I can’t tell you anything about my experience with “large scale” JSF projects but I guess that there aren’t to much of them out there. My own experience is that JSF is a monster. We’ve are using it for a mid sized project and it is hell. You are entering a configuration inferno with an amount of complexity even for simple applications. We are still fighting with JSF in that project but are looking for alternatives now.
Hi Dominik,
I worked on a public book search site using JSF and it was an interesting experience. The framework has both ups and downs but worked quite well for our small-mid scale sized project. You can check out our detailed comments at: http://www.jsfcentral.com/articles/trenches_6.html and the site at http://books.infact.com
Hi Rajiv,
thanks for your reply, I already read your article.
What makes me wonder is that there actually are so few replys to this question. I feel like there aren’t that many JSF projects around. I am currently working on a JSF project again, but this project is not really big as well, mid-sized maybe.
So, where are the big JSF projects?
Hi Dominik, When we set out trying out JSF, we had the same issue - locating big, real world production sites/projects using the techonology. It was the active community around the spec and implementation that convinced us in the end. I think JSF adoption has not yet reached critical mass but it probably will soon.
125
The number of views?
538 navigation rules (based on use cases) to 214 views.
The number of custom components?
30
The load on the server(s)? How many concurrent users?
A 3GHz P4 with 2GB for Tomcat and 2GB for SQLServer can support 30 users reasonably well. The database is the bottleneck (from our periodic performance profiling).
Which JSF implementation did you use?
Apache MyFaces
Did you use RAD tools?
No
What were your pain points?
Mystery MyFaces bugs (duplicate IDs), lack of automated testability, inability to have multiple windows, and complex integration with JDO.
What do you think is JSF’s sweetspot?
Closely-coupled client/server architecture which alleviates the need to handle HTTP-level details. (Note: I prefer loosely coupled architectures which use static HTML with JavaScript and XHRs against a REST API)
Have you had concerns with bookmarkability?
Yes. We partially handled that by having user preferences in the application for setting a home page: the view that is loaded upon login for that user. Navigation rules break web semantics by making the response from a URL stateful and only allowing requests to the current “view” thus making bookmarking very difficult.
Would you write your next web-application using JSF and, if not, why not?
No. It requires too much knowledge of Java, XML, JSP tag libraries. JSF also requires a lot of duplication of information between XML and Java. It is very difficult to find developers that can use it productively. It is too easy for unused code to remain in the codebase because of the complexity of dependencies between components.
Can you give a short description about the project?
My ideal web framework: * REST API reflecting the key resources that the user needs to create, retrieve, update, or destroy. * Serverless layout with static HTML+CSS+JavaScript * 100% client-side user interaction and session-state achieved JavaScript using The Dojo Toolkit (http://dojotoolkit.org/) * Absolutely no server-side layout generation. The REST API is the only dynamic component and it provides only data. * Unlimited scalability by distributing REST API handling and static content across multiple servers
I find it ironic that server-side web framework creators suceed so well at reducing the feature set of HTTP without making the process of web application development substantially easier in the long run.
Hi, Thought I’d my feedback (though my project is still in progress): * The number of managed beans? * 25 - will probably go to about 50 when I’m done
15 - projected to rise to 50 or so
The number of custom components?
About 20 for now… projected to rise to about 40 or more
The load on the server(s)? How many concurrent users?
50 to 2000
Which JSF implementation did you use?
JBoss (MyFaces I think) + Facelets + Prototype (JS)
Did you use RAD tools?
Initially, but found them too distracting; ended up hand-coding most of the time with Eclipse
What where your pain points?
The biggest one was no form gets and bookmarkable URL’s… had to resort to javascript + a lot of reaching into the http request parameter objects. Also a custom view-handler
What do you think is JSF’s sweetspot?
Any web-app that requires no form gets can be written quite easily and well
Have you had concerns with bookmarkability?
Oh yes! See above.
Would you write your next web-application using JSF and, if not, why not?
Probably will… unsure
Can you give a short description about the project?
1st project: Create a claims application that had 600 concurrent users. JSF performed like a snail. It chewed up 4 gigs of memory, it took all the processing power on 4 servers. The GC was running full tilt. Spent 2 weeks performance tuning tc not much better. Some page took up to 12 seconds to return bc GC was running. TO solve the problem we replaced it with spring MVC. Problem sorted! max memory consumption was 500 meg and no page took longer than 3 seconds to come back under peak load.
2nd App I was brought into to fix. Every single bean is stored in the session which also had reference to spring beans.. When you look at the size of the session it was over 50Meg per user. Then there were hibernate lazy loading issues… IT is so easy to write crap code and make stupid mistakes with JSF. I prefer to follow a stateless pattern personally = less headaches