Здесь действительно нет «правила» в отношении «эталонной реализации» по сравнению с другой реализацией - вы берете имеющиеся у вас требования / предпочтения / деньги и сравниваете их с функциональностью / стоимостью каждого доступного варианта.
Долгое время Tomcat был спецификацией сервлета RI. И долгое время EJB RI был шуткой - никто на самом деле не использовал его. И не было «эталонной реализации» для J2EE в целом.
Причина, по которой большинство людей используют другие серверы, заключается в том, что в течение долгого времени Weblogic и Websphere были только (реалистичными) реализациями, поэтому проектам / людям, которые начали с J2EE, будет удобнее с ними. JBoss был первым успешным сервером приложений J2EE с открытым исходным кодом - поэтому люди, которые предпочли открытый исходный код (или просто хотели бесплатный сервер приложений), были довольно ограничены этим вариантом - и снова - эти люди предпочтут то, что они знают.
Однако в настоящее время GlassFish в значительной степени сопоставим с другими открытыми / коммерческими серверами приложений Java EE. И он использует Tomcat для своего движка сервлета - и он довольно модульный, поэтому вы можете брать ненужные детали.
Еще одна вещь, повлиявшая на это, заключалась в том, что разработчик перешел от «тяжеловесных» спецификаций J2EE к «облегченным» решениям с открытым исходным кодом, таким как Hibernate и Spring (когда они были доступны), и работал только в контейнере сервлетов (обычно Tomcat) без полноценный сервер приложений.