Mike Gualtieri at Forrester has a rather sensationalist post with a rather sensationalist title “Stop Wasting Money On WebLogic, WebSphere, And JBoss Application Servers”. I agree with some of what Mike says and have been giving the same advice to developers, customer and users for at least the last decade. Specifically – choose the run-time that best suits your needs. If all you require is a Servlet container then Tomcat is very likely the way to go; very likely the least complexity you need. If your application has greater needs – Transaction coordination, caching, clustering, ORM / Persistence, messaging, a modern UI framework then you probably need to look at one of the commercial or open source Java EE Application Servers (Weblogic, Websphere, JBoss, Glassfish).
The mistake that people make (Mike included) is that vanilla Tomcat addresses the full spectrum of enterprise web / app platforms. It simply doesn’t. There is only a small class of applications that need nothing more than a servlet container. The vast majority of Tomcat deployments require a whole bunch of additional technology – the de-facto Tomcat stack is Tomcat + some view layer tech. (eg. Spring MVC) + some persistence / ORM (eg. Hibernate). That is the basis for the alternative to Java EE. Most people end up adding a lot more stuff than that and find themselves somewhat accidentally maintaining a full featured application server. I know of customers who have been very successful doing this; they’ve invested in very knowledgeable people to manage the stack; I’ve also seen customers fail or simply decide that they aren’t willing to become an app. server vendor.
Finally, full disclosure – I do work for one of the vendors Mike mentions – specifically Red Hat and we would be delighted to sell you a subscription to a full featured Java EE Application Server (and a broad range of middleware) but if you have chosen Tomcat – we can help you with that too – we provide a distribution of Tomcat and even certify and test other elements of the Tomcat stack like Hibernate and Spring. Or as most customers actually demand – we can help you with both.