Tomcat only implements the web container of the Java Enterprise Edition architecture. In contrast, e.g. GlassFish implements a full Java EE stack. This has been discussed a lot on stackoverflow.
However, for a Java EE beginner like me it is hard to imagine what cannot be done with Tomcat. Could you please give some short examples?
From the Apache tomcat documentation:
Some of the differences this implies is…
Tomcat can be used inside of an J2EE conatiner to use as the web conatiner.
Tomcat is much lighter-weight regarding resources and file system foot prints.
If you need J2EE functionality, my suggestion would be to bite the bullet and use Glassfish despite the complexity and resource requirements (compared to tomcat, Glassfish is quite easy to use compared to others like Weblogic, and JBoss). If not, stick with tomcat, it will keep things simple and fast for you. Either way, it isn’t hard to switch your project packaging later and swap out containers.