本稿は Java EE (Java Enterprise Edition) に関する記事です。Java EE は企業向けアプリケーション開発に必要な規格・API の集合体で、Web (サーブレット/JSP)、トランザクション、永続化、メッセージング、Webサービスなどを統一的に扱います。
2017 年に運営が Oracle から Eclipse Foundation へ移管され、現在は Jakarta EE という名前で開発が継続されています (パッケージ名も javax.* → jakarta.* に変更)。
子ページから項目を選択してください。
本ページの子ページ
- サーブレット — Webリクエストを処理する Java クラス
- DI — 依存性注入
- CDI — Contexts and Dependency Injection
- EJB — Enterprise JavaBeans
- JAX-RS — RESTful Web Services API
- REST — REST アーキテクチャスタイル
Java EE / Jakarta EE の位置づけ
| 項目 | 内容 |
|---|---|
| 正式名 | Java Platform, Enterprise Edition (旧 J2EE) / 現 Jakarta EE |
| 対象 | 企業向けの分散システム・Web アプリ・業務基幹系 |
| 性格 | API 仕様の集合体。規格であり、実装は複数ある (アプリケーションサーバ) |
| 主な実装 | WildFly (Red Hat)、GlassFish、Open Liberty、Payara、TomEE、WebLogic、WebSphere |
| 運営移管 | 2017年 Eclipse Foundation 配下 (Jakarta EE) |
| 名前空間 | Jakarta EE 9+ で javax.* → jakarta.* へ |
主な API / 規格
| カテゴリ | API | 役割 |
|---|---|---|
| Web 層 | Servlet、JSP、JSF、WebSocket | HTTP リクエスト処理・画面生成 |
| RESTful | JAX-RS | REST API 構築 |
| SOAP | JAX-WS | SOAP Web サービス |
| 永続化 | JPA (Java Persistence API) | ORマッピング (Hibernate 等が実装) |
| ビジネスロジック | EJB | セッション Bean / メッセージ駆動 Bean |
| DI | CDI | 依存性注入とライフサイクル管理 |
| トランザクション | JTA | 分散トランザクション |
| メッセージング | JMS | 非同期メッセージング |
| セキュリティ | Jakarta Security | 認証・認可 |
| バリデーション | Bean Validation | @NotNull 等のアノテーション検証 |
| JSON | JSON-B、JSON-P | JSON のシリアライズ・解析 |
| メール | JavaMail | SMTP 送信等 |
| 並行 | Concurrency Utilities | マネージドスレッド |
Java EE / Jakarta EE / Spring の関係
- Java EE / Jakarta EE: 標準規格。複数の実装 (アプリケーションサーバ) で動く
- Spring Framework / Spring Boot: Java EE 標準を必須としない独立したエコシステム。ただし JPA・Bean Validation 等の標準 API は内部で活用している
- 現在の新規プロジェクトでは Spring Boot が主流。Jakarta EE 系は WildFly / Open Liberty / Payara などを使う案件で根強く採用
典型的な Servlet + JPA の例
|
@WebServlet("/users") |
主な実行環境 (アプリケーションサーバ)
| サーバ | 特徴 |
|---|---|
| WildFly (旧 JBoss) | Red Hat、Jakarta EE 完全対応のフラッグシップ実装 |
| GlassFish | かつてのリファレンス実装 |
| Open Liberty | IBM 製。軽量・モジュール |
| Payara | GlassFish 派生。商用サポート |
| TomEE | Tomcat + EE。軽量 |
| WebLogic | Oracle 製。エンタープライズ大規模 |
| WebSphere | IBM 製。大規模基幹系 |
| Apache Tomcat (単体) | Servlet / JSP のみ。完全な EE 実装ではない |
注意点
- Jakarta EE 9 以降は
javax.*→jakarta.*へ。ライブラリ・サーバの整合性に注意 - 新規開発では Spring Boot / MicroProfile も有力選択肢
- EJB は重いと敬遠されてきた経緯がある。最近は CDI + JPA + JAX-RS の組み合わせが主流
- 古い Java EE 5/6 プロジェクトの保守時は、サポート切れの API・脆弱性のあるサーバ実装に注意
関連
- 親カテゴリ: フレームワーク (Java)
- 子ページ: サーブレット / DI / CDI / EJB / JAX-RS / REST
- 関連: Spring Framework / Apache Tomcat
同階層のページ
- Spring Framework
- Struts
- Java EE
人気ページ
- 1 Eclipseで「サーバーに追加または除去できるリソースがありません。」の原因と対処法
- 2 tomcat の起動 / 停止ログと catalina.log・catalina.out の違い
- 3 JavaScript で base URL を取得する方法|window.location.origin
- 4 YouTube Data API v3 エラー一覧|403・400・404 の原因と対処
- 5 Laravel エラー一覧|500/Blade/DB 接続/ルーティングの代表エラー
- 6 3Dグラフィックスとは|モデリング/レンダリング/主要ソフトウェア (Blender / Maya)
- 7 Spring Frameworkのアノテーション一覧
- 8 【Spring】@Valueアノテーションとは
- 9 CATALINA_HOME の確認方法 (Linux / Mac)
- 10 【Spring】@Autowiredアノテーションとは
最近更新/作成されたページ
- プロジェクトをTomcatプロジェクトとして認識させる方法 2026-10-07 22:32:50
- MySQLの1366 Incorrect string value|Laravelの文字コード・絵文字エラー 2026-10-07 21:54:03
- curlの証明書ホスト名不一致|旧エラー51・現行60の確認と対処 2026-10-07 21:54:03
- LaravelのMassAssignmentException|fillableの原因と安全な対処 2026-10-07 21:54:03
- Eclipse で Tomcat の起動ログがコンソールに出ない時の確認手順 2026-10-07 21:54:02
- MySQLにおける中央値(Median)の導き方(バージョン8未満) 2026-10-07 13:49:45
- getInputForward 2026-10-07 13:41:15
- JSONから配列に変換 2026-10-07 13:41:15
- ビューから値をモデルに格納しコントローラーで受け取る方法 2026-10-07 13:23:41
- Laravelのテーブル作成と定義変更|マイグレーション・up/down・注意点 2026-10-07 13:23:41
- NumPy 配列に要素を追加する方法 (append / concatenate) 2026-10-07 13:23:41
- MariaDB・MySQLで現在日時を取得する方法|NOW・タイムゾーン・保存型 2026-10-07 13:13:36
- 【django】テンプレートで定数を使用する方法 2026-10-07 13:10:15
- Spring BootにおけるApplication.propertiesの環境依存設定の分割方法 2026-10-07 12:09:35
- Not supported for DML operations【Springエラー】 2026-10-07 11:09:38