仕様 Jakarta EEには、Webページの生成、トランザクション方式によるデータベースの読み書き、分散キューの管理など、さまざまな目的に対応する複数の仕様が含まれています。
Jakarta EE APIには、Jakarta Enterprise Beans 、コネクタ 、サーブレット 、Jakarta Server Pages 、およびいくつかのWebサービス 技術など、基本となるJava SE API の機能を拡張する複数の技術が含まれています。
企業仕様 Jakarta Activation ( JAF ) は、コンポーネント Bean のデータ型とバインディングを提供することで、コンポーネント Bean を拡張するためのアーキテクチャを規定しています。 Jakarta Contexts and Dependency Injection ( CDI ) は、 依存性注入 コンテナを提供するための仕様です。 Jakarta Enterprise Beans ( EJB ) 仕様は、オブジェクトコンテナ (EJB コンテナ) がサポートする軽量 API のセットを定義しており、これによりトランザクション ( JTA を使用)、リモートプロシージャコール ( RMI またはRMI-IIOP を使用)、並行性制御 、依存性注入 、およびビジネスオブジェクトへのアクセス制御 が提供されます。このパッケージには、エンタープライズ Bean とそのクライアント間、およびエンタープライズ Bean と EJB コンテナ間の契約を定義する Jakarta Enterprise Beans クラスとインターフェースが含まれています。Jakarta Persistence ( JPA ) は、リレーションデータベーステーブルとJavaクラス間のオブジェクトリレーショナルマッピングに関する仕様です。Jakarta Transactions ( JTA ) には、Jakarta EE が提供するトランザクション サポートとやり取りするためのインターフェースと注釈が含まれています。[ 17 ] [ 18 ] この API はX/Open XA標準の実装における非常に低レベルの詳細を抽象化していますが、インターフェースもやや低レベルであると考えられており、Jakarta EE の平均的なアプリケーション開発者は、より高レベルの EJB 抽象化によるトランザクションの透過的な処理に依存するか、この API が提供する注釈を CDI 管理ビーンと組み合わせて使用するものと想定されています。 Jakarta Messaging ( JMS ) は、Java プログラムがエンタープライズ メッセージング システムのメッセージを作成、送信、受信、および読み取るための共通の方法を提供します。
ウェブプロフィール ウェブコンテナの物理的および概念的なフットプリントを制限するために、Jakarta EE仕様のサブセットであるウェブプロファイルが作成されました。Jakarta EEウェブプロファイルは、以下の要素で構成されています。
ジャカルタメール Jakarta Mail(旧称JavaMail)は、 SMTP 、POP3 、IMAP を介して電子メール を送受信するために使用されるJakarta EE API です。Jakarta MailはJakarta EEプラットフォームに組み込まれていますが、 Java SE で使用するためのオプションのパッケージも提供しています。[ 69 ]
現在のバージョンは2.1.3で、2024年2月29日にリリースされました。[ 70 ] 別のオープンソースの Jakarta Mail実装(GNU JavaMail)が存在し、これは廃止されたJavaMail 1.3仕様のみをサポートしていますが、唯一の無料のNNTPバックエンドを提供しており、この技術を使用して ニュースグループの 記事を読み書きすることが可能です。
2019年現在、このソフトウェアはJakarta Mailとして知られており、Jakarta EE ブランド(旧称Java EE )の一部となっている。リファレンス実装はEclipse Angusプロジェクトの一部である。
運用に必要な関連プロジェクトのMaven座標は以下のとおりです。
メールAPI:jakarta.mail:jakarta.mail-api:2.1.3 メール実装: org.eclipse.angus:angus-mail:2.0.3 マルチメディア拡張機能: jakarta.activation:jakarta.activation-api:2.1.3 Jakarta Mail は、Eclipse.org上で Jakarta Mail という新しい名前でオープンソース プロジェクトとしてホストされています。[ 71 ]
Jakarta Mailのソースコードの大部分は、以下のライセンスに基づいてライセンスされています。
EPL-2.0 GPL-2.0 with Classpath Exception ライセンスデモプログラムのソースコードはBSDライセンスに基づいてライセンスされています。
コードサンプル 以下に示すコードサンプルは、Java EE 7のさまざまな技術を組み合わせて、ユーザー編集用のWebフォームを構築する方法を示しています。
Jakarta EE では、 Jakarta Servlet 、Jakarta Server Pages ( JSP )、またはFaceletsを使用した Jakarta Faces ( JSF ) を使用して (Web) UI を構築できます。以下の例では Faces とFacelets を使用しています。明示的には示されていませんが、入力コンポーネントは内部的に Jakarta EE Bean Validation API を使用して制約を検証します。
<html xmlns= "http://www.w3.org/1999/xhtml" xmlns:h= "http://xmlns.jcp.org/jsf/html" xmlns:f= "http://xmlns.jcp.org/jsf/core" > <f:metadata> <f:viewParam name= "user_id" value= "#{userEdit.user}" converter= "#{userConvertor}" /> </f:metadata> <h:body> <h:messages /> <h:form> <h:panelGrid columns= "2" > <h:outputLabel for= "firstName" value= "名" /> <h:inputText id= "firstName" value= "#{userEdit.user.firstName}" label= "名" /> <h:outputLabel for= "lastName" value= "姓" /> <h:inputText id= "lastName" value= "#{userEdit.user.lastName}" label= "姓" /> <h:commandButton action= "#{userEdit.saveUser}" value= "保存" /> </h:panelGrid> </h:form> </h:body> </html>
バッキングビーンクラスの例 表示を補助するために、Jakarta EE は「バッキング Bean」と呼ばれる概念を使用します。以下の例では、コンテキストと依存性注入 (CDI)、およびJakarta Enterprise Beans ( EJB ) を使用しています。
パッケージ org.wikipedia.examples ; import java.io.Serializable ; import jakarta.faces.view.ViewScoped ; import jakarta.inject.Inject ; import jakarta.inject.Named ; @Named @ViewScoped public class UserEdit implements Serializable { private static final long serialVersionUID = 1L ; プライベート ユーザー ユーザー ; @Inject プライベート UserDAO userDAO ; public String saveUser ( ) { userDAO.save ( this.user ) ; addFlashMessage ( String.format ( " User % d saved " , this.user.getId ( ) ) ) ; return "users.xhtml?faces-redirect=true" ; } public void setUser ( User user ) { this.user = user ; } public User getUser () { return user ; } }
データアクセスオブジェクトクラスの例 ビジネスロジックを実装するために、 Jakarta EEではJakarta Enterprise Beans (EJB )という専用技術が使用されています。実際の永続化には、JDBC またはJakarta Persistence (JPA)を使用できます。以下の例では、EJBとJPAの両方を使用しています。明示的には示されていませんが、トランザクション動作を制御するために、EJBの内部ではJTAが使用されています。
パッケージ org.wikipedia.examples ; import java.util.List ; import jakarta.ejb.Stateless ; import jakarta.persistence.EntityManager ; import jakarta.persistence.PersistenceContext ; import jakarta.persistence.TypedQuery ; @Stateless public class UserDAO { @PersistenceContext private EntityManager entityManager ; public void save ( User user ) { entityManager.persist ( user ) ; } public void update ( User user ) { entityManager.merge ( user ) ; } public List < User > getAll () { return entityManager . createNamedQuery ( "User.getAll" , User . class ) . getResultList (); } }
エンティティクラスの例 Jakarta EEは、エンティティ/モデルクラスを定義するためにJakarta Persistence(JPA )を提供し、それらのエンティティに対する制約を表現するためにBean Validation APIを提供します。以下の例では、これら両方の技術を使用しています。
パッケージ org.wikipedia.examples ; import jakarta.persistence.Entity ; import jakarta.persistence.Id ; import jakarta.persistence.GeneratedValue ; import jakarta.persistence.GenerationType ; @Entity public class User { @Id @GeneratedValue ( strategy = IDENTITY ) private Integer id ; @Size ( min = 2 , message = "名が短すぎます" ) private String firstName ; @Size ( min = 2 , message = "姓が短すぎます" ) private String lastName ; public Integer getId () { return id ; } public void setId ( Integer id ) { this.id = id ; } public String getFirstName () { return firstName ; } public void setFirstName ( String firstName ) { this.firstName = firstName ; } public String getLastName () { return lastName ; } public void setLastName ( String lastName ) { this.lastName = lastName ; } }
参考文献 ↑ 「Java EEとJava SEの違い - 初めてのカップ:Java EEプラットフォーム入門」。Docs.oracle.com。2012年4月1日。 2012年7月18日 取得 。 ↑ 「Java EE の概要」 。Oracle Corporation。2017 年 2 月 26 日 取得 。 ↑ Waters, John K. (2017年9月12日). 「Java EE は Eclipse Foundation に移行します」 . ADTmag . 2017年9月13日 閲覧 。 ↑ ビートン、ウェイン。 「EE4J FAQ」 。Eclipse Foundation 。 ↑ Milinkovich, Mike (2019年5月3日). 「ジャカルタEEのJava商標権に関する最新情報」 . ブログ. Life at Eclipse . 2024年7月25日 取得 . ↑ Chirgwin, Richard (2018年3月4日). 「Java EE、Big Redブランド論争後に『Jakarta EE』に改名」 . Software. The Register . 2018年 3月19日 閲覧 . ↑ Vaughan-Nichols, Steven J. (2018年3月5日). "Good-bye JEE, hello Jakarta EE" . Linux and Open Source. ZDNet . 2020年7月10日 取得 。 ↑ アルジャン、ティムス(2020年2月27日)。 「Java EE から Jakarta EE への移行」 。ジャワマガジン。 blogs.oracle.com 。 2024 年 7 月 25 日 に取得 。 ↑ 「Jakarta EE リリース」 。 ジャカルタEE 。 エクリプス財団 。 2024 年 7 月 17 日 に取得 。 ↑ ハリス、ジェイコブ (2025-06-26)。 「Eclipse Foundation の Jakarta EE ワーキンググループが Jakarta EE 11 のリリースを発表」 。ニュース。Jakarta EE (プレスリリース)。Eclipse Foundation。2025-11-17 に 取得 。 ↑ Obradovic, Tanja; Grimstad, Ivar (2022-09-22). "Eclipse Foundation の Jakarta EE ワーキンググループが Jakarta EE 10 をリリースし、クラウドネイティブ Java の時代を切り開く" . ニュース. Jakarta EE (プレスリリース). Eclipse Foundation . 2024-07-17 に取得 . ↑ Obradovic, Tanja; Grimstad, Ivar (2021-05-25). "Jakarta EEワーキンググループがJakarta EE 9.1をリリース、業界は引き続きオープンソースのエンタープライズJavaを採用" . ニュース. Jakarta EE (プレスリリース). Eclipse Foundation . 2022-03-05 に取得 。 ↑ シャブナム、ムマイエル。オブラドビッチ、ターニャ(2020-12-08)。 「ジャカルタ EE 9 リリースされました!」 。ニュース。 ジャカルタ EE (プレスリリース)。 エクリプス財団 。 2022-03-05 に取得 。 ↑ シャブナム、ムマイエル。オブラドビッチ、ターニャ(2019-09-10)。 「ジャカルタ EE 8 リリースされました!」 。ニュース。 ジャカルタ EE (プレスリリース)。 エクリプス財団 。 2022-03-05 に取得 。 ↑ Krill, Paul (2003年11月21日). "J2EE 1.4仕様が認定されました" . ソフトウェア開発. InfoWorld . 2022年3月5日 取得 . ↑ コープランド、リー(2001年9月24日)。 「サンがJ2EE 1.3を発表」 。ソフトウェア開発。Computerworld 。 2022年3月5日 閲覧 。 ↑ Red Hat Customer Content Services。 「Jakarta Transactions」 。 開発ガイド | Red Hat JBoss Enterprise Application Platform | 7.3 。 2026年4月11日 取得 。 ↑ Christudas, Binildas; Telang, Tarun (2025-10-03). Practical Microservices Architectural Patterns: Build Highly Scalable Distributed Applications with Spring Boot 3 and Spring Cloud . Springer Nature. p. 383. ISBN 979-8-8688-1606-2 。↑ 「JSR 316: Java Platform, Enterprise Edition 6 (Java EE 6) Specification」 。Java Community Process。Oracle Corporation 。 2022 年3月5日 取得。 ↑ 「JSR 342: Java Platform, Enterprise Edition 7 (Java EE 7) Specification」 。Java Community Process。Oracle Corporation 。 2022 年3月5日 取得。 ↑ "Java Platform, Enterprise Edition 8 (Java EE 8) Web Profile Specification" (PDF) . GitHub . Oracle Corporation . 2022年10月9日にオリジナルから アーカイブ (PDF) . 2022年2月5日 に取得 . ↑ 「Webプロファイル定義」 。Jakarta EE WebProfile。8 . Jakarta EE。Eclipse Foundation 。 2022年3月5日 取得。 ↑ 「Webプロファイル定義」 。Jakarta EE WebProfile。9 . Jakarta EE。Eclipse Foundation 。 2022年3月5日 取得。 ↑ 「Webプロファイル定義」 。Jakarta EE WebProfile。9.1。Jakarta EE。Eclipse Foundation 。 2022年3月5日 取得。 ↑ 「Webプロファイル定義」 。Jakarta EE WebProfile。10 . Jakarta EE。Eclipse Foundation 。 2022年9月27日 取得。 ↑ 「Webプロファイル定義」 。Jakarta EE WebProfile。11 . Jakarta EE。Eclipse Foundation 。 2025年12月27日 取得。 ↑ 「 Jakarta EE対応製品」 。Jakarta.ee 。 ↑ 「Jakarta EE 9 対応製品」 。Jakarta.ee 。 ↑ 「Jakarta EE 8 対応製品」 。Jakarta.ee 。 ↑ "Open Liberty 23.0.0.1-beta の Jakarta EE 10 プラットフォームと MicroProfile 6" . openliberty.io . 1 2 "Open Liberty 23.0.0.3 での Jakarta EE 10、MicroProfile 6、および Java SE 20 のサポート" . openliberty.io . 1 2 3 4 5 6 7 「Java EE 互換性」 。www.oracle.com。2018 年 8 月 5 日 に 取得 。 1 2 3 4 5 6 7 「Java EE 互換性」 。 1 2 「GlassFish Open Source Edition バージョン 2.x と 3.0.x の比較」 。 {{cite web}}: CS1メンテナンス: アーカイブサービスは非推奨になりました (リンク)↑ 「Java EE 互換性」 。Java.sun.com。2010-09-07。2012-07-18 に 取得 。 ↑ 「Oracle Weblogic Server 14.1.1 」 。www.oracle.com 。 ↑ 「Oracle Weblogic Server 12.1.1 」 。www.oracle.com 。 ↑ Lyons, Will; Humphrey, Pieter (2011). "Oracle Web Logic Server 12c: 最新の軽量 Java EE 6 アプリケーションの開発" (PDF) 。2011-12-15の オリジナル (PDF) からアーカイブ済み。2011-12-03 に 取得 。 ↑ 「Java EE 互換性 」 。www.oracle.com 。 ↑ "JBoss AS 7.1.0.Final "Thunder" リリース - Java EE 6 Full Profile 認定済み! | My Wiki | Planet JBoss Community" . Planet.jboss.org. 2012-02-17 . 2012-07-18 に取得 . ↑ 「JBossアプリケーションサーバー - JBossコミュニティ」 。 ↑ 「JBossアプリケーションサーバー - JBossコミュニティ」 。 ↑ 「Java EE互換性」 。 ↑ 「JBoss AS が EE5 認証を取得しました!」 2008 年 9 月 15 日。2008年 9 月 20 日の オリジナル からアーカイブ済み。2016 年 8 月 7 日 取得 。 ↑ 「Red Hat JBoss Enterprise Application Platform 7.2 の可用性」 。 ↑ 「Red HatがJBoss Enterprise Application Platform 6を発表、企業がアプリケーション開発とデプロイメントをクラウドへ移行するのを支援」 。Business Wire。2012年6月20日。 2016年11月11日の オリジナルからアーカイブ。 2012年7月18日 取得 。 ↑ 「WebSphere Application Server V8 の新機能」 。Ibm.com 。 2012年7月18日 取得 。 1 2 「IBM WebSphere Application Server Liberty は、Java EE 8 と互換性のある初の本番環境対応アプリケーション サーバーを提供し、Spring Boot アプリケーションのサポートを拡大します」 。IBM。2018 年 7 月 10 日。2018 年 7 月 12 日 取得 。 ↑ 「Java EE 7 - テスト済み構成 - IBM WebSphere Application Server Liberty プロファイル」 。Oracle.com 。 ↑ 「Java EE 7 が WAS Liberty に搭載されました - WASdev」 。2015 年 6 月 25 日。 ↑ 「IBM Java EE 6 Web プロファイル テスト済み構成」 。 ↑ "Apache Geronimo : Index" . geronimo.apache.org . 2010年1月25日。 ↑ 「Apache GeronimoがJava EE 6の完全認証を取得 - H Open: ニュースと機能」 。H-online.com。2011年11月14日。 2012年4月20日の オリジナルからアーカイブ。 2012年7月18日 取得 。 ↑ 「テスト済み構成、Java EE 6 - TMAX JEUS 7」 。Oracle.com。2010年9月7日。 2012年7月18日 取得 。 ↑ 「Java EE6 Webアプリケーションサーバー、WASソフトウェア」 。Us.tmaxsoft.com。 2012年7月2日に オリジナルからアーカイブ済み 。 2012年7月18日 に取得。 ↑ 「Java EE 6 - テスト済み構成、Java EE 6 - Hitachi uCosminexus Application Server v9.0」 。Oracle.com。 ↑ 「Windows Azure を搭載した Fujitsu Interstage Application Server」 。2011 年 8 月 10 日の オリジナルからアーカイブ済み。 ↑ 「テスト済み構成、Java EE6 - Fujitsu Interstage」 。Oracle.com。2010年9月7日。 2012年7月18日 取得 。 ↑ 「富士通、Interstage Application Server V10.1をリリース」 . 富士通。 ↑ 「NEC WebOTX Application Server V9.x 認定」 。 ↑ 「Apache TomEE」 。 ejb.apache.org を開きます 。 2012 年 7 月 18 日 に取得 。 ↑ 「MarketWatch.com」 。MarketWatch.com 。 2012年7月18日 取得 。 ↑ TomEE、Apache。 「Apache TomEE 7.0.1」 。 ↑ 「Resin Application Server Java EE 6 Web Profile」 (PDF) 。caucho.com 。 2011 年。 2022年10月9日にオリジナルから アーカイブ (PDF) 。 ↑ 「Java EE認定オプションとしてSiwpasを歓迎してください!」 Oracle.com 。 2015年12月7日 取得 。 ↑ "JOnAS 5.3.0 RC1 リリース" . jonas.ow2.org . 2013-01-07. 2013-10-15 の オリジナルからアーカイブ済み 。2014-02-25 に 取得 。 ↑ 「SAP NetWeaver Cloud Java EE 6 Web Profile 認定取得! (The Aquarium) 」 ↑ 「SAPソフトウェアソリューション - ビジネスアプリケーションとテクノロジー」 。 2009年12月7日に オリジナルからアーカイブされました 。 2010年5月3日 に取得。 ↑ 「JavaEE の組み込み」 。2014 年 11 月 12 日 に取得。 ↑ 「ジャカルタメールホームページ」 。 2023年 9月5日 取得 。 ↑ 「ジャカルタ・メール」 。 2019年 9月3日 取得 。
外部リンク 公式サイト 公式 Jakarta EE チュートリアル ジャカルタEEチュートリアル第1回:ジャカルタEE入門 Jakarta EE 仕様ガイド - Jakarta EE プラットフォーム Jakarta EE 公式スターター: Jakarta EE プロジェクトの生成 Java Platform, Enterprise Edition (Java EE)、Oracle Technology Network ジャカルタEE公式YouTubeチャンネル