It seems that they are springing up everywhere - no way can I evaluate all of them - or to be honest even a selection. I am reasonably java savvy, but most of my knowledge is with client side Swing development. I have an open source project on the web called Commander4j. I have coded my application so that it can connect to and use mySQL, MSSQL and Oracle versions of my database. The core application consists of a single .jar file and this jar is used by the desktop swing application, a server side "service" using the excellent wrapper from Tanuki Software. I've event got a servlet using the same file so that I know my logic remains consistent throughout the application. It is possible for several web users to connect to the same servlet, each of them can connect to a different host database (any of the above types) and see the web page in their preferred language. Although I am pleased with this, my biggest headache is thread safety on the Servlet side of things. I would like to consider moving away from my hand crafted code, but I wonder if I have already painted myself into a corner. All my database transactions for example have a class which expects them to be constructed with 2 parameters, a Host ID which is used to determine the database to use, and a Session ID which is used to ensure that in the Servlet at least I don't get any problems with different users/transactions sharing the same connection to the database.
Phew - lots and lots of work.
I had a look at the getting started sections on a number of frameworks like Tapestry for example but have to admit that I found the Maven stuff all rather tedious and confusing.
So I would like a framework which I can get to grips with - without the need to learn 15 other technologies 1st.
I would like to work with Eclipse and have some graphical design tools. My preferred server is Tomcat,
It would be nice to be up-to-date and have a couple of reasonable books I can get from Amazon.
All my source is available from sourcforge via http://www.commander4j.com - the b4web.zip would probably give you insight into my current level of ability.
1. The tutorial is outstanding and teaches you a lot of the major features.
2. No Maven requirement, it has its own build tool which is pretty simple and easy.
3. The build environment actually reads and loads changes to your .java files as you save them, so you don't have to restart Jetty, Tomcat, or another web server every time you change a piece of your Java code. That may seem like a small thing, but in practice it's an incredible productivity boost. (A few other Java web application frameworks have this feature, and speaking as a mediocre Java development with relatively small amount of experience, it seems to me to be THE most important feature to have in web development. Now I understand why Ruby, Perl, Python, and PHP developers are willing to give up static typing and high performance for the convenience of seeing your changes on-the-fly. After working this way, going back to Struts, Spring, etc... is very frustrating.)
Now, I have not used it in a big production deployment, so far I only use it for a simple monitoring application internally at my job. But it took me three days with Play to build something that would have taken me three weeks with Struts 1.x (granted that Struts 1.x is old now).
Please do post back to this discussion with what you choose and why, I am curious to see what you do use - and I promise not to try to convince you to use Play if you choose something else.
This kind of comparison is highly subjective, and Matt Raible has gotten a lot of flak over it. It's useful for listing some of the points one might look at it when choosing frameworks, but not for actually choosing one. Searching these forums for choose web framework finds other discussions that should be helpful.
I've looked at those discussions Ulf and there are no recent threads in there. My biggest problem with frameworks is that to properly evaluate them you need to learn them. It seems most people who give evaluations are selling something. I have absolutely no idea which is the best framework and I am sure it can change depending on your situation. I would not mind further discussion on this and will keep an eye open for this. I was impressed with OSGi so far but all I read was the first chapter.
May be people have hidden agenda when they recommend a framework but I think it helps us to build the check list to compare the framework. This is true when we are not experts in web framework, For e.g. framework 1 may be good in feature 1 and we may not have feature1 as one of the criteria to evaluate frameworks. We can then do a quick prototype. This is my opinion.