Я бы лично порекомендовал Glassfish, поскольку он более стабилен, лучше реализован и в целом более высокого качества, чем Tomcat. Я не хочу начинать войну пламенем (говоря, что помещать J2EE в Tomcat - это все равно что помадить помаду), но я расскажу вам, как мы развернем все наши приложения:
Мы используем Glassfish в качестве веб-контейнера, TopLink в качестве поставщика сохраняемости, обычно подключенного к базе данных MySQL 5. Мы используем JPA POJO на всем пути от уровня EJB, через веб-уровень, а также уровень GWT через RPC. Мы также используем Stripes и JSP для всей логики представления, которая не требует функциональности AJAX. У нас никогда не было проблем с этим подходом, и мы до сих пор реализовали как минимум 10 крупных проектов. Это лучшая архитектура, которая была у нас на сегодняшний день, и у нас было много (tomcat, jboss, hibernate, стойки, весна, и т. Д., И т. Д.).