Creo que la pregunta de si realmente necesita EJB es casi similar a preguntar si realmente necesita usar clases. Tan pronto como usa solo un poco de persistencia (muchas aplicaciones lo necesitan), los beans EJB son de gran ayuda. A diferencia de sus ancestros antiguos, los EJB modernos son muy livianos y fáciles de usar.
Dicho esto, como los otros indicaron. Tomcat es solo un contenedor Servlet. Proporciona Servlet y JSP, nada más. Si desea conveniencias modernas de Java como JSF, EJB y JPA (por ejemplo, Hibernate), debe agregarlas por separado a su .war (en WEB-INF/lib) o al directorio lib de Tomcat.
Sin embargo, si agrega todo esto a Tomcat manualmente, podría usar Glassfish, JBoss AS o Apache Geronimo. El último de ellos puede ser visto como Tomcat donde la gente Apache ya se han añadido JSF, EJB, JPA, JTA, etc para usted ;-)
También tenga en cuenta que Tomcat es uno de los servidores más estables y livianos. Y es posible que no necesite EJB3.1 para aplicaciones pequeñas a medianas, aunque es liviano. Debido a que podría haber desarrolladores de equipos con experiencia en tecnologías de servidor Java sin EJB y env de producción en Tomcat, no hay una razón válida para mover Glassfish u otro servidor Java EE6. Me puede encantar Glassfish3.x como individuo, pero no satisface algunas de las necesidades de la aplicación en tiempo real. –
Bueno, trabajaste en Glassfish y EJB3.1. –
@BalusC bien, vi esto tantas veces que empecé a pensar que era normal. – Geoffroy