まず、「J2EE」は廃止された略語で、現在は単に「Java Enterprise Edition」または Java EE と呼ばれています。
サーブレット コンテナー (Tomcat など) とは対照的に、「完全な」Java EE アプリケーション サーバーには EJB コンテナーも含まれます。EJB はエンタープライズ Java Bean であり、たとえばここ(第 IV 章)などで多くのことを読むことができます。EJB は現在バージョン 3.2 (Java EE 7 および Java EE 8) で、以前のバージョンは 3.1 (Java EE 6) および 3.0 (Java EE 5) です。ただし、最大の違いは v2 と v3 の間です。
EJB は、アプリケーションのビジネス ロジックを保持するように設計されています。たとえば、ステートレス セッション Bean は、何かを計算したり、Web サービスやアプリケーションが実行する必要のあるものを表すことができます。メッセージ駆動型 Bean はメッセージ キューをリッスンできるため、非同期通信が必要な場合に役立ちます。シングルトン Bean は、Bean ごとに 1 つのインスタンスを保証します。
ファイルの種類については、EJB は .jar ファイル、Web アプリケーションは .war ファイルにまとめられており、それらを 1 つのアプリケーションに混在させたい場合は、.ear ファイル (「エンタープライズ アーカイブ」) になります。
EJB のほかに、「完全な」アプリケーション サーバーは、トランザクション、セキュリティ、JDBC リソースも処理します。サーブレット コンテナーよりも使用することを強くお勧めしますが、利点には複雑さが伴うため、妥当な時間を費やす必要があります。たとえばWebsphereの扱い方を学ぶ( PayaraとWildFlyはもっと簡単で、私のお気に入りです)。JBossとWeblogicも非常に人気があり、Tomcat に精通している場合はTomEEをご覧ください。