I just about totally base my Java consulting business on Tomcat (almost all of my work is in developing web applications). When I need a J2EE component (e.g., JMS) I use an external high quality open source package (e.g., JoNAS JMS). Instead of EJBs, I simply write and debug “middle-ware” code for accessing data sources, business logic, etc. After it is working, then I do the presentation layer with JSPs and struts (old fashioned stuff
Even though it is not as light weight as plain Tomcat, I am considering switching over to using JBoss 4.01 as my standard development and deployment platform and always have the full J2EE stack available. I have not personally used JBoss clustering yet, but from what I hear it is stable. I have never been a huge fan of EJBs but by annotations like XDoclet makes using EJBs fairly simple.
Anyway, development and deployment computers are so much faster than they were back when I started doing server side Java development that I might as well just have the whole J2EE stack available. (Sort of like when I code in Common Lisp: I like to load an image that has just about *everything* that I have ever written in it
I would like to hear from other consultants and get their opinions (which I might summarize here if I get enough responses).