He usado WebLogic, WebSphere, JBoss, GlassFish, Resin, Jetty, Tomcat y algunos otros en los últimos 10 años. Entonces, si estuviera considerando un nuevo proyecto, primero me haría algunas preguntas. Una cosa que ya no cuestionaría es que me negaría rotundamente a usar JSP a menos que fuera torturado hasta que llore por mi mami.
¿Tengo que ser compatible / implementar en un producto específico debido al mandato de alguien? ¿No hay forma de ignorarlos o convencerlos de lo contrario? Si es así, ahí está tu respuesta.
¿Tengo que usar EJBs? De Verdad? Si es posible, evítelos; en realidad, solo son necesarios para sistemas muy grandes de clase empresarial. Recuerde que son simplemente herramientas, y grandes en eso (¿alguien puede decir "Golden Sledgehammer"?). Están muy sobreutilizados, por lo que realmente se preguntan si los necesita. Si los necesita, eso elimina varias de sus opciones, incluido mi favorito, Jetty.
¿Tiene que usar alguna de las otras tecnologías J2EE importantes como JMS, ESB, etc.? Si es así, y realmente no puede prescindir, entonces nuevamente está limitado a un contenedor J2EE completo. Piense e investigue cuidadosamente antes de comprometerse con BPM, por ejemplo, y evite AquaLogic BPM a (casi) todos los costos; es extremadamente feo.
Si realmente debe usar un contenedor J2EE completo, considere primero el código abierto porque es más robusto, mejor soportado y más rentable. Tienen bases de clientes más grandes y una interacción de soporte más abierta, por lo que tienden a obtener mejores soluciones más rápido. Sin embargo, Resin es inmadura y la evitaría en relación con GlassFish o JBoss: me pareció problemático implementarla y brindar soporte. Preferiría JBoss debido a su base de clientes más amplia, madurez, etc. GlassFish es más difícil de incorporar en un proceso automatizado de construcción / implementación, pero podría ser mejor para algunas de sus características específicas (si las necesita).
¿Tengo una razón especial para necesitar Apache? Luego inclínate hacia Tomcat, quizás más algo.
¿Puedo conformarme solo con servlets? Entonces usaría Jetty: es la solución más ligera, rápida, fácil y flexible. Si me inclino a no poder usar Jetty, cuestionaría todas mis suposiciones de por qué. YAGNI aplica.
Lo mejor es usar StringTemplate / WebStringTemplate en Jetty: una solución limpia, robusta, rápida y fácil de mantener sin tarifas de licencia, sólida reputación y soporte, etc. Aquí es donde empiezo hoy en día.
La mayoría de las aplicaciones / sistemas eligen muchas características sofisticadas de J2EE cuando todo lo que realmente necesitan son servlets y JDBC con una arquitectura / diseño decente. Pregunta por qué crees que necesitas más.
De los contenedores completos, evitaría WebLogic y WebSphere a menos que esté apoyando un sitio web público MAYOR (el sitio web de mi empleador actual está implementado en WebLogic y recibe más de once millones de visitas por mes, otros han sido comparables). El verdadero reclamo a la fama de WebLogic es su agrupación relativamente fácil, pero evite sus características exclusivas de bloqueo de proveedores a (casi) todo el costo. WebSphere es simplemente una pesadilla que evitaría literalmente a toda costa: me niego a hacer proyectos que involucren a WebSphere después de haber hecho un par en el pasado. Ninguno de los productos vale las enormes tarifas de licencia, a menos que realmente tenga una necesidad especial que impulse el uso de una función patentada. En una década como arquitecto / ingeniero senior para muchas compañías de Fortune 500, todavía no he visto tal necesidad. Por otra parte,
Incluso para los sitios web públicos realmente grandes y de alto tráfico, los productos patentados siguen siendo cuestionables. Preferiría gastar esos millones de dólares anuales en tarifas de licencia en un buen hardware y un tiempo de calidad de un puñado de consultores realmente buenos para abordar una solución de escalabilidad simple. Los millones adicionales por año podrían usarse para producir algo digno de venta en ese lindo sitio web ...
EDITAR: otra pieza a considerar ...
Recientemente me he encontrado con terracota . Estoy repensando todo y estoy buscando implementarlo en un sistema significativo pronto. En particular, la terracota agrupa mejor que cualquier otra cosa, por lo que ya NO recomendaría WebLogic para su agrupación.