อ่าน 11 นาที
จาการ์ตา อีอี
Jakarta EE ซึ่งเดิมชื่อ Java Platform, Enterprise Edition ( Java EE ) และ Java 2 Platform, Enterprise Edition ( J2EE ) เป็นชุดข้อกำหนดที่ขยาย Java SE [ 1 ]...
จาการ์ตา อีอี
| ซอฟต์แวร์ผู้เล่น | ชวา |
|---|---|
| ภาษาโปรแกรม | ชวา |
| ใบสมัคร | เซิร์ฟเวอร์แอปพลิเคชัน |
| สถานะ | คล่องแคล่ว |
| ใบอนุญาต | ใบอนุญาต Eclipse Public LicenseหรือGNU General Public Licenseพร้อมข้อยกเว้น Classpath |
| เว็บไซต์ | จาการ์ตา |
| แพลตฟอร์ม Javaรุ่นต่างๆ |
|---|
|
Jakarta EEซึ่งเดิมชื่อJava Platform, Enterprise Edition ( Java EE ) และJava 2 Platform, Enterprise Edition ( J2EE ) เป็นชุดข้อกำหนดที่ขยายJava SE [ 1 ]ด้วยข้อกำหนดสำหรับคุณสมบัติระดับองค์กร เช่นการประมวลผลแบบกระจายและบริการเว็บ [ 2 ]แอปพลิเคชัน Jakarta EE ทำงานบนรันไทม์อ้างอิงซึ่งอาจเป็นไมโครเซอร์วิสหรือเซิร์ฟเวอร์แอปพลิเคชันซึ่งจัดการธุรกรรม ความปลอดภัย ความสามารถในการปรับขนาดการทำงานพร้อมกันและการจัดการส่วนประกอบที่กำลังใช้งาน
Jakarta EE ถูกกำหนดโดยข้อกำหนดเฉพาะ ของมัน ข้อกำหนดเฉพาะนี้กำหนดAPI (Application Programming Interface) และการทำงานร่วมกันของ API เหล่านั้น เช่นเดียวกับ ข้อกำหนดเฉพาะของ Java Community Process อื่นๆ ผู้ให้บริการจะต้องปฏิบัติตามข้อกำหนดด้านความสอดคล้องบางประการเพื่อประกาศว่าผลิตภัณฑ์ของตนเป็นไปตามมาตรฐาน Jakarta EE
ตัวอย่างบริบทที่ใช้รันไทม์อ้างอิง Jakarta EE ได้แก่อีคอมเมิร์ซการบัญชีและระบบสารสนเทศทางการ ธนาคาร
ประวัติศาสตร์
แพลตฟอร์มที่สร้างโดยSun Microsystemsเป็นที่รู้จักในชื่อJava 2 Platform, Enterprise EditionหรือJ2EEตั้งแต่เวอร์ชัน 1.2 จนกระทั่งเปลี่ยนชื่อเป็นJava Platform, Enterprise EditionหรือJava EEในเวอร์ชัน 1.5
หลังจากที่ Oracle เข้าซื้อกิจการ Sun ในปี 2009 Java EE ก็ได้รับการดูแลโดยOracleภายใต้Java Community Processเมื่อวันที่ 12 กันยายน 2017 Oracle Corporationประกาศว่าจะส่ง Java EE ให้กับEclipse Foundation [ 3 ]โครงการระดับสูงสุดของ Eclipse ได้รับการตั้งชื่อว่า Eclipse Enterprise for Java (EE4J) [ 4 ] Eclipse Foundation ไม่สามารถตกลงกับ Oracle เกี่ยวกับการใช้javaxเครื่องหมายการค้า Java ได้[ 5 ] Oracle เป็นเจ้าของเครื่องหมายการค้าสำหรับชื่อ "Java" และแพลตฟอร์มจึงเปลี่ยนชื่อจาก Java EE เป็น Jakarta EE [ 6 ] [ 7 ]ชื่อนี้หมายถึงเมืองที่ใหญ่ที่สุดบนเกาะชวาและเป็นเมืองหลวงของอินโดนีเซีย คือจาการ์ตา[ 8 ] ไม่ควรสับสนชื่อนี้กับJakarta Project เดิม ซึ่งสนับสนุนโครงการ Java ปัจจุบันและอดีตหลายโครงการที่Apache Software Foundation
| แพลตฟอร์มเวอร์ชัน | ปล่อย[ 9 ] | ข้อกำหนด | การสนับสนุนJava SE | การเปลี่ยนแปลงที่สำคัญ |
|---|---|---|---|---|
| จาการ์ตา อีอี 11 | 2025-06-26 [ 10 ] | 11 |
| ข้อมูล |
| จาการ์ตา อีอี 10 | 2022-09-22 [ 11 ] | 10 |
| การลบรายการที่ล้าสมัยใน Servlet, Faces, CDI และ EJB (Entity Beans และ Embeddable Container) เวลาสร้าง CDI |
| จาการ์ตา อีอี 9.1 | 2021-05-25 [ 12 ] | 9.1 |
| รองรับ JDK 11 |
| จาการ์ตา อีอี 9 | 2020-12-08 [ 13 ] | 9 | Java SE 8 | ย้ายเนมสเปซ API จากjavaxไปยังjakarta |
| จาการ์ตา อีอี 8 | 2019-09-10 [ 14 ] | 8 | Java SE 8 | ใช้งานร่วมกับ Java EE 8 ได้อย่างสมบูรณ์ |
| Java EE 8 | 31 สิงหาคม 2560 | เจเอสอาร์ 366 | Java SE 8 | ระบบรักษาความปลอดภัย แบบ HTTP/2และ CDI |
| Java EE 7 | 28 พฤษภาคม 2556 | เจเอสอาร์ 342 | Java SE 7 | รองรับ WebSocket , JSONและHTML5 |
| Java EE 6 | 10 ธันวาคม 2552 | เจเอสอาร์ 316 | Java SE 6 | CDIจัดการ Bean และ REST |
| Java EE 5 | 11 พฤษภาคม 2549 | เจเอสอาร์ 244 | Java SE 5 | คำอธิบายประกอบใน JavaและGenerics ใน Java |
| เจ2อีอี 1.4 | 11 พฤศจิกายน 2546 | เจเอสอาร์ 151 | เจ2เอสอี 1.4 | บริการเว็บที่ทำงานร่วมกันได้ของWS-I [ 15 ] |
| เจ2อีอี 1.3 | 24 กันยายน 2544 | เจเอสอาร์ 58 | เจ2เอสอี 1.3 | สถาปัตยกรรมตัวเชื่อมต่อ Java [ 16 ] |
| เจ2อีอี 1.2 | 17 ธันวาคม 1999 | 1.2 | เจ2เอสอี 1.2 | การเผยแพร่ข้อกำหนดเบื้องต้น |
ข้อกำหนด
Jakarta EE ประกอบด้วยข้อกำหนดหลายประการที่ตอบสนองวัตถุประสงค์ที่แตกต่างกัน เช่น การสร้างเว็บเพจ การอ่านและเขียนข้อมูลจากฐานข้อมูลในรูปแบบธุรกรรม และการจัดการคิวแบบกระจาย
Jakarta EE API ประกอบด้วยเทคโนโลยีหลายอย่างที่ขยายฟังก์ชันการทำงานของJava SE API พื้นฐาน เช่นJakarta Enterprise Beans , คอนเน็กเตอร์ , เซอร์ฟเล็ต , Jakarta Server Pagesและเทคโนโลยี เว็บเซอร์วิส ต่างๆ
ข้อกำหนดเว็บ
- Jakarta Servlet : กำหนดวิธีการจัดการคำขอ HTTP ทั้งแบบซิงโครนัสและอะซิงโครนัส เป็นกลไกในระดับต่ำ และข้อกำหนดอื่นๆ ของ Jakarta EE ก็อาศัยกลไกนี้เป็นหลัก
- Jakarta WebSocket: ข้อกำหนด API ที่กำหนดชุด API สำหรับให้บริการ การเชื่อมต่อ WebSocket ;
- Jakarta Faces : เทคโนโลยีสำหรับการสร้างส่วนติดต่อผู้ใช้จากส่วนประกอบต่างๆ
- ภาษา Jakarta Expression Language ( EL ) เป็นภาษาที่เรียบง่ายซึ่งออกแบบมาเพื่อตอบสนองความต้องการเฉพาะของนักพัฒนาเว็บแอปพลิเคชันโดยเฉพาะ โดยใช้ใน Jakarta Faces เพื่อเชื่อมโยงคอมโพเนนต์กับ (backing) bean และใน Contexts และ Dependency Injection กับ named bean แต่ก็สามารถนำไปใช้ได้ทั่วทั้งแพลตฟอร์ม
ข้อกำหนดบริการเว็บ
- Jakarta RESTful Web Servicesให้การสนับสนุนในการสร้างเว็บเซอร์วิสตาม รูปแบบสถาปัตยกรรม Representational State Transfer (REST)
- Jakarta JSON Processing คือชุดข้อกำหนดสำหรับการจัดการข้อมูลที่เข้ารหัสในรูปแบบ JSON;
- Jakarta JSON Binding มีข้อกำหนดในการแปลงข้อมูล JSON ไปเป็นหรือจากคลาส Java;
- Jakarta XML Bindingช่วยให้สามารถแปลง XML เป็นอ็อบเจ็กต์ Java ได้
- Jakarta XML Web Servicesสามารถใช้สร้างเว็บเซอร์วิส SOAP ได้
ข้อกำหนดขององค์กร
- Jakarta Activation ( JAF ) กำหนดสถาปัตยกรรมเพื่อขยาย Bean ของคอมโพเนนต์โดยการให้การกำหนดประเภทข้อมูลและการผูกข้อมูลของประเภทเหล่านั้น
- Jakarta Contexts and Dependency Injection ( CDI ) เป็นข้อกำหนดสำหรับการสร้างคอนเทนเนอร์สำหรับการฉีดการพึ่งพา (dependency injection container)
- ข้อกำหนด Jakarta Enterprise Beans ( EJB ) กำหนดชุด API ที่มีน้ำหนักเบาซึ่งคอนเทนเนอร์อ็อบเจ็กต์ (คอนเทนเนอร์ EJB) จะรองรับเพื่อให้สามารถดำเนินการธุรกรรม (โดยใช้JTA ) การเรียกใช้กระบวนการระยะไกล (โดยใช้RMIหรือRMI-IIOP ) การควบคุมการทำงานพร้อมกันการฉีดการพึ่งพาและการควบคุมการเข้าถึง สำหรับอ็อบเจ็กต์ทางธุรกิจ แพ็กเกจนี้ประกอบด้วยคลาสและอินเทอร์เฟซ ของJakarta Enterprise Beans ที่กำหนดข้อตกลงระหว่างเอนเตอร์ไพรส์บีนและไคลเอ็นต์ และระหว่างเอนเตอร์ไพรส์บีนและคอนเทนเนอร์ EJB
- Jakarta Persistence ( JPA ) คือข้อกำหนดเกี่ยวกับการแมปอ็อบเจ็กต์เชิงสัมพันธ์ระหว่างตารางในฐานข้อมูลเชิงสัมพันธ์และคลาสในภาษา Java
- Jakarta Transactions ( JTA ) ประกอบด้วยอินเทอร์เฟซและคำอธิบายประกอบเพื่อโต้ตอบกับการสนับสนุนธุรกรรมที่ Jakarta EE นำเสนอ[ 17 ] [ 18 ]แม้ว่า API นี้จะแยกรายละเอียดระดับต่ำมากในการใช้งาน มาตรฐาน X/Open XAออกไป แต่อินเทอร์เฟซก็ถือว่าอยู่ในระดับต่ำเช่นกัน และนักพัฒนาแอปพลิเคชันโดยเฉลี่ยใน Jakarta EE จะต้องพึ่งพาการจัดการธุรกรรมแบบโปร่งใสโดยนามธรรม EJB ระดับสูง หรือใช้คำอธิบายประกอบที่ API นี้จัดให้ร่วมกับ CDI managed beans
- Jakarta Messaging ( JMS ) เป็นระบบที่ให้วิธีการทั่วไปสำหรับโปรแกรม Java ในการสร้าง ส่ง รับ และอ่านข้อความของระบบส่งข้อความระดับองค์กร
ข้อกำหนดอื่นๆ
- Jakarta Validation: แพ็กเกจนี้ประกอบด้วยคำอธิบายประกอบและอินเทอร์เฟซสำหรับการสนับสนุนการตรวจสอบความถูกต้องแบบประกาศ (declarative validation) ที่มีให้โดยJakarta Validation API Jakarta Validation มอบวิธีการที่เป็นหนึ่งเดียวในการกำหนดข้อจำกัดให้กับ bean (เช่น คลาสโมเดล Jakarta Persistence) ที่สามารถบังคับใช้ข้ามเลเยอร์ได้ ใน Jakarta EE นั้น Jakarta Persistence จะเคารพข้อจำกัดการตรวจสอบความถูกต้องของ bean ในเลเยอร์การคงอยู่ของข้อมูล ในขณะที่JSFจะทำเช่นนั้นในเลเยอร์การแสดงผล
- Jakarta Batch เป็นเครื่องมือสำหรับการประมวลผลแบบแบตช์ในแอปพลิเคชัน เพื่อเรียกใช้งานงานเบื้องหลังที่ใช้เวลานาน ซึ่งอาจเกี่ยวข้องกับข้อมูลจำนวนมาก และอาจจำเป็นต้องเรียกใช้งานเป็นระยะๆ
- Jakarta Connectorsเป็นเครื่องมือที่ใช้ภาษา Java สำหรับเชื่อมต่อเซิร์ฟเวอร์แอปพลิเคชันและระบบสารสนเทศระดับองค์กร ( EIS ) ซึ่งเป็นส่วนหนึ่งของการบูรณาการแอปพลิเคชันระดับองค์กร ( EAI ) นี่คือ API ระดับต่ำที่มุ่งเป้าไปที่ผู้จำหน่ายซอฟต์แวร์ ซึ่งโดยทั่วไปแล้วนักพัฒนาแอปพลิเคชันทั่วไปมักไม่ค่อยได้ติดต่อด้วย
โปรไฟล์บนเว็บ
เพื่อจำกัดขนาดของเว็บคอนเทนเนอร์ ทั้งในเชิงกายภาพและเชิงแนวคิด จึงได้มีการสร้างเว็บโปรไฟล์ขึ้น ซึ่งเป็นส่วนย่อยของข้อกำหนด Jakarta EE โดยเว็บโปรไฟล์ Jakarta EE ประกอบด้วยสิ่งต่อไปนี้:
| ข้อกำหนด | Java EE 6 [ 19 ] | Java EE 7 [ 20 ] | ชวา EE 8 [ 21 ]จาการ์ตา EE 8 [ 22 ] | จาการ์ตา EE 9 [ 23 ]จาการ์ตา EE 9.1 [ 24 ] | จาการ์ตา EE 10 [ 25 ] | จาการ์ตา EE 11 [ 26 ] |
|---|---|---|---|---|---|---|
| จาการ์ตาเซอร์ฟเล็ต | 3.0 | 3.1 | 4.0 | 5.0 | 6.0 | 6.1 |
| Jakarta Server Pages ( JSP ) | 2.2 | 2.3 | 2.3 | 3.0 | 3.1 | 4.0 |
| ภาษาจาการ์ตาเอ็กซ์เพรสชัน ( EL ) | 2.2 | 3.0 | 3.0 | 4.0 | 5.0 | 6.0 |
| การรองรับการดีบัก Jakarta สำหรับภาษาอื่นๆ (JSR-45) | 1.0 | 1.0 | 1.0 | 2.0 | 2.0 | 2.0 |
| คลังแท็กมาตรฐานจาการ์ตา ( JSTL ) | 1.2 | 1.2 | 1.2 | 2.0 | 3.0 | 3.0 |
| จาการ์ตาเฟซส์ | 2.0 | 2.2 | 2.3 | 3.0 | 4.0 | 4.1 |
| บริการเว็บ RESTful ของจาการ์ตา ( JAX-RS ) | 1.1 | 2.0 | 2.1 | 3.0 | 3.1 | 4.0 |
| จาการ์ตา WebSocket ( WebSocket ) | ไม่มีข้อมูล | 1.0 | 1.1 | 2.0 | 2.1 | 2.2 |
| การประมวลผล JSON ในจาการ์ตา ( JSON-P ) | ไม่มีข้อมูล | 1.0 | 1.1 | 2.0 | 2.1 | 2.1 |
| การผูกข้อมูล JSON ของ Jakarta ( JSON-B ) | ไม่มีข้อมูล | ไม่มีข้อมูล | 1.1 | 2.0 | 3.0 | 3.0 |
| คำอธิบายประกอบจาการ์ตา ( CA ) | 1.1 | 1.2 | 1.3 | 2.0 | 2.1 | 3.0 |
| บริษัท จาการ์ตา เอ็นเตอร์ไพรส์ บีนส์ ( EJB ) | 3.1 ไลท์ | 3.2 ไลท์ | 3.2 ไลท์ | 4.0 ไลท์ | 4.0 ไลท์ | 4.0 ไลท์ |
| ธุรกรรมจาการ์ตา ( JTA ) | 1.1 | 1.2 | 1.2 | 2.0 | 2.0 | 2.0 |
| จาการ์ตา เพอร์ซิสเตนซ์ ( JPA ) | 2.0 | 2.1 | 2.2 | 3.0 | 3.1 | 3.2 |
| การตรวจสอบความถูกต้องของ Jakarta Bean | 1.0 | 1.1 | 2.0 | 3.0 | 3.0 | 3.1 |
| จาการ์ตา แมเนจเมนท์ บีนส์ | 1.0 | 1.0 | 1.0 | 2.0 | ไม่มีข้อมูล | ไม่มีข้อมูล |
| จาการ์ตา อินเตอร์เซปเตอร์ส | 1.1 | 1.2 | 1.2 | 2.0 | 2.1 | 2.2 |
| Jakarta Contexts และ Dependency Injection ( CDI ) | 1.0 | 1.1 | 2.0 | 3.0 | 4.0 | 4.1 |
| การฉีดการพึ่งพาของจาการ์ตา | 1.0 | 1.0 | 1.0 | 2.0 | 2.0 | 2.0 |
| ความปลอดภัยจาการ์ตา | ไม่มีข้อมูล | ไม่มีข้อมูล | 1.0 | 2.0 | 3.0 | 4.0 |
| การตรวจสอบความถูกต้องของจาการ์ตา | ไม่มีข้อมูล | 1.0 | 1.1 | 2.0 | 3.0 | 3.1 |
| ความพร้อมกันของจาการ์ตา | ไม่มีข้อมูล | ไม่มีข้อมูล | ไม่มีข้อมูล | ไม่มีข้อมูล | 3.0 | 3.1 |
รันไทม์อ้างอิงที่ได้รับการรับรอง
แม้ว่าโดยนิยามแล้ว การใช้งาน Jakarta EE ทั้งหมดจะใช้เทคโนโลยีพื้นฐานระดับเดียวกัน (กล่าวคือ ข้อกำหนด Jakarta EE และ API ที่เกี่ยวข้อง) แต่ก็อาจแตกต่างกันอย่างมากในด้านคุณสมบัติเพิ่มเติม (เช่นตัวเชื่อมต่อการจัดกลุ่ม การทนต่อ ความผิดพลาด ความพร้อมใช้งานสูงความปลอดภัยฯลฯ) ขนาดการติดตั้งปริมาณการใช้หน่วยความจำเวลาเริ่มต้นทำงาน ฯลฯ
จาการ์ตา อีอี
| อ้างอิงรันไทม์[ 27 ] [ 28 ] [ 29 ] | นักพัฒนา | แพลตฟอร์ม EE 10 จาการ์ตา | ผลิตภัณฑ์ที่รองรับแพลตฟอร์ม Jakarta EE 9/9.1 | ผลิตภัณฑ์ที่รองรับ Jakarta EE 9/9.1 Web Profile | ผลิตภัณฑ์ที่รองรับแพลตฟอร์ม Jakarta EE 8 | ผลิตภัณฑ์ที่รองรับ Jakarta EE 8 Web Profile | การออกใบอนุญาต |
|---|---|---|---|---|---|---|---|
| ปลาแก้ว | คราส | ใช่ 7.0.0 | ใช่ 6.0.0/ 6.1.0 | ใช่ 6.0.0/ 6.1.0 | ใช่ 5.1.0 | ใช่ 5.1.0 | ซอฟต์แวร์ฟรี |
| เปิดเสรีภาพ | ไอบีเอ็ม | ใช่ 22.0.0.13-เบต้า, [ 30 ] 23.0.0.3 [ 31 ] | ใช่ 21.0.0.12 | ใช่ 21.0.0.12 | ใช่ 19.0.0.6, 20.0.0.3 | ใช่ 19.0.0.6, 20.0.0.3 | ซอฟต์แวร์ฟรี |
| เว็บสเฟียร์ ลิเบอร์ตี้ | ไอบีเอ็ม | ใช่ 23.0.0.3 [ 31 ] | ใช่ 21.0.0.12 | ใช่ 21.0.0.12 | ใช่ 20.0.0.3 | ใช่ 20.0.0.3 | ซอฟต์แวร์กรรมสิทธิ์ |
| ไวลด์ฟลาย | หมวกแดง | ใช่ 27.0.0.อัลฟา5 | ใช่ 23.0.1-พรีวิว/25.0.0-พรีวิว | ใช่ 23.0.1-พรีวิว/25.0.0-พรีวิว | ใช่ 18.0.0 | ใช่ 18.0.0 | ซอฟต์แวร์ฟรี |
| เจบอส อีเอพี | หมวกแดง | ใช่ 8.0.0 | เลขที่ | เลขที่ | ใช่ 7.3.0 | ใช่ 7.3.0 | ซอฟต์แวร์ฟรี |
| ทอมอี | อะปาเช่ | ใช่ 10.x | ใช่ 9.x | ใช่ 9.x | ใช่ 8.x | ใช่ 8.x | ซอฟต์แวร์ฟรี |
| เซิร์ฟเวอร์ Payara | บริษัท ปายารา เซอร์วิสเซส จำกัด | ใช่ 6.2022.1 อัลฟ่า 4 | ใช่ 6.2021.1 อัลฟ่า 1 | เลขที่ | ใช่ 5.22.0, 5.23.0 | ใช่ 5.23.0 | ซอฟต์แวร์ฟรี |
| เซิร์ฟเวอร์แอปพลิเคชัน Thunisoft | บริษัท ปักกิ่ง ธูนิซอฟต์ เทคโนโลยีสารสนเทศ | เลขที่ | ใช่ 3.0 | เลขที่ | ใช่ 2.8 | เลขที่ | ซอฟต์แวร์กรรมสิทธิ์ |
| พระเยซู | ทีแม็กซ์ซอฟต์ | เลขที่ | เลขที่ | เลขที่ | ใช่ 8.5 | เลขที่ | ซอฟต์แวร์กรรมสิทธิ์ |
| เซิร์ฟเวอร์แอปพลิเคชัน InforSuite | มิดเดิลแวร์ Shandong Cvicse | เลขที่ | ใช่ 11 | เลขที่ | ใช่ 10 | เลขที่ | ซอฟต์แวร์กรรมสิทธิ์ |
| เว็บโอทีเอ็กซ์ | เอ็นซีซี | ใช่ 12 | เลขที่ | เลขที่ | ใช่ 11 | เลขที่ | ซอฟต์แวร์กรรมสิทธิ์ |
Java EE
| การอ้างอิงรันไทม์ | นักพัฒนา | ได้รับการรับรอง Java EE 8 อย่างสมบูรณ์ | ได้รับการรับรอง Java EE 8 – เว็บ | ได้รับการรับรอง Java EE 7 อย่างสมบูรณ์ | ได้รับการรับรอง Java EE 7 – เว็บ | ได้รับการรับรอง Java EE 6 – ดูข้อมูลฉบับเต็มได้ที่หน้าเว็บทางการของ Oracle เกี่ยวกับความเข้ากันได้กับ Java EE | ได้รับการรับรอง Java EE 6 – เว็บ | ได้รับการรับรอง Java EE 5 | ได้รับการรับรองมาตรฐาน J2EE 1.4 | การออกใบอนุญาต |
|---|---|---|---|---|---|---|---|---|---|---|
| เซิร์ฟเวอร์ GlassFishรุ่นโอเพ่นซอร์ส | ออราเคิล | ใช่ v5.0 [ 32 ] | ใช่ v5.0 [ 32 ] | ใช่ v4.x [ 33 ] | ใช่ v4.x [ 33 ] | ใช่ v3.x และขึ้นไป[ 34 ] | ใช่ โปรไฟล์เว็บ v3.x | ใช่ v2.1.x [ 34 ] | ซอฟต์แวร์ฟรี | |
| เซิร์ฟเวอร์ Oracle GlassFish | ออราเคิล | ใช่ v3 [ 35 ]อิงตามเซิร์ฟเวอร์แอปพลิเคชัน GlassFish แบบโอเพนซอร์ส | ใช่แล้วSun Java System Application Serverเวอร์ชัน 9.0 | ใช่แล้วSun Java System Application Serverเวอร์ชัน 8.2 | ซอฟต์แวร์กรรมสิทธิ์ | |||||
| Oracle WebLogic Server | ออราเคิล | ใช่ 14.1.1 [ 36 ] | ใช่ 12.2.1 [ 37 ] | ใช่ v12c [ 38 ] | ใช่ เวอร์ชัน 10.3.5.0 | ใช่ v9 | ซอฟต์แวร์กรรมสิทธิ์ | |||
| ไวลด์ฟลาย | หมวกแดง | ใช่ v14.x [ 32 ] | ใช่ v14.x [ 32 ] | ใช่ v8.1 [ 39 ] | ใช่ v8.0.0.Final | ใช่ v7.1 [ 40 ] | ใช่ v6.0 [ 41 ]และ v7.0 [ 42 ] | ใช่ v5.1 [ 43 ] [ 44 ] | ใช่ v4.x | ซอฟต์แวร์ฟรี |
| แพลตฟอร์มแอปพลิเคชันองค์กร JBoss | หมวกแดง | ใช่ v7.2 [ 45 ] | ใช่ v7.0 [ 33 ] | ใช่ v7.0 [ 33 ] | ใช่ v6.0 [ 46 ] | ใช่ v5 | ซอฟต์แวร์กรรมสิทธิ์ | |||
| เซิร์ฟเวอร์แอปพลิเคชัน IBM WebSphere | ไอบีเอ็ม | ใช่ v9.x [ 32 ] | ใช่ v9.x [ 33 ] | ใช่ v8 [ 47 ] | ใช่ v7 | ใช่ | ซอฟต์แวร์กรรมสิทธิ์ | |||
| IBM WebSphere Application Server Liberty | ไอบีเอ็ม | ใช่ v18.0.0.2 [ 48 ] | ใช่ v18.0.0.2 [ 48 ] | ใช่ v8.5.5.6 [ 49 ] [ 50 ] | ใช่ v8.5.5.6 [ 33 ] | ใช่ v8.5.5 [ 51 ] | ซอฟต์แวร์กรรมสิทธิ์ | |||
| เปิดเสรีภาพ | ไอบีเอ็ม | ใช่ เวอร์ชัน 18.0.0.2 | ใช่ เวอร์ชัน 18.0.0.2 | ซอฟต์แวร์ฟรี | ||||||
| IBM WebSphere Application Server รุ่น Community Edition | ไอบีเอ็ม | ใช่ เวอร์ชัน 3.0 | ใช่ เวอร์ชัน 2.1 | ซอฟต์แวร์กรรมสิทธิ์ | ||||||
| อะปาเช่ เจโรนิโม | อะปาเช่ | ใช่ v3.0-beta-1 [ 52 ] [ 53 ] | ใช่ เวอร์ชัน 2.0 | ใช่ เวอร์ชัน 1.0 | ซอฟต์แวร์ฟรี | |||||
| พระเยซู | ทีแม็กซ์ซอฟต์ | ใช่ v8 | ใช่ v7 [ 54 ] [ 55 ] | ใช่ v6 | ใช่ v5 | ซอฟต์แวร์กรรมสิทธิ์ | ||||
| เซิร์ฟเวอร์แอปพลิเคชันคอสมิเน็กซัส | ฮิตาชิ | ใช่ v10.0 [ 32 ] | ใช่ v9 [ 56 ] | ซอฟต์แวร์กรรมสิทธิ์ | ||||||
| เซิร์ฟเวอร์แอปพลิเคชัน Fujitsu Interstage [ 57 ] | ฟูจิตสึ | ใช่ v12.0 [ 32 ] | ใช่ v1 Azure/v10.1 [ 58 ] [ 59 ] | ใช่ | ซอฟต์แวร์กรรมสิทธิ์ | |||||
| เว็บโอทีเอ็กซ์ | เอ็นซีซี | ใช่[ 60 ] | ใช่ | ซอฟต์แวร์กรรมสิทธิ์ | ||||||
| เซิร์ฟเวอร์แอปพลิเคชัน BES | บาโอลันเด | ใช่ v9.5 [ 33 ] | ||||||||
| Apache TomEE [ 61 ] [ 62 ] | อะปาเช่ | หมายเลข 7 (คล้าย Java EE 7 แต่ไม่ได้รับการรับรอง[ 63 ] ) | ใช่ | ซอฟต์แวร์ฟรี | ||||||
| เซิร์ฟเวอร์เรซิน | เคาโช | ใช่ v4.0 [ 64 ] | ใช่ | ซอฟต์แวร์กรรมสิทธิ์ | ||||||
| ซิวปาส | โอวี2 | ใช่ v6.0 [ 65 ] | ซอฟต์แวร์ฟรี | |||||||
| โจนาส | โอวี2 | ใช่ v5.3 rc1 [ 66 ] | ใช่ | ใช่ | ซอฟต์แวร์ฟรี | |||||
| SAP NetWeaver | เอสพี | ใช่ v2.x [ 67 ] | ใช่ | ใช่ | ซอฟต์แวร์กรรมสิทธิ์ | |||||
| Oracle Containers สำหรับ Java EE | ออราเคิล | ใช่ | ซอฟต์แวร์กรรมสิทธิ์ | |||||||
| เซิร์ฟเวอร์เว็บ Oracle iPlanet | ออราเคิล | ใช่แล้ว เซิร์ฟเวอร์เว็บระบบ Sun Java | ซอฟต์แวร์กรรมสิทธิ์ | |||||||
| Oracle Application Server 10g | ออราเคิล | ใช่ | ซอฟต์แวร์กรรมสิทธิ์ | |||||||
| เซิร์ฟเวอร์ Pramati | บริษัท ปรามาติ เทคโนโลยีส์ | ใช่ เวอร์ชัน 5.0 | ซอฟต์แวร์กรรมสิทธิ์ | |||||||
| ไตรฟอร์ค ที4 | ไตรฟอร์ก | ใช่ | ซอฟต์แวร์กรรมสิทธิ์ | |||||||
| เซิร์ฟเวอร์แอปพลิเคชัน Sybase Enterprise [ 68 ] | ไซเบส | ใช่ | ซอฟต์แวร์กรรมสิทธิ์ |
จาการ์ตาเมล
Jakarta Mail (เดิมชื่อ JavaMail) เป็นAPI ของ Jakarta EE ที่ใช้ในการส่งและรับอีเมลผ่านSMTP , POP3และIMAP Jakarta Mail ถูกสร้างขึ้นในแพลตฟอร์ม Jakarta EE แต่ยังมีแพ็กเกจเสริมสำหรับใช้ในJava SE อีกด้วย [ 69 ]
เวอร์ชันปัจจุบันคือ 2.1.3 ซึ่งเผยแพร่เมื่อวันที่ 29 กุมภาพันธ์ 2024 [ 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 ได้รับอนุญาตภายใต้ใบอนุญาตดังต่อไปนี้:
- อีพีแอล-2.0
- ลิขสิทธิ์ GPL-2.0พร้อมข้อยกเว้น Classpath
- ซอร์สโค้ดของโปรแกรมสาธิตได้รับอนุญาตภายใต้ใบอนุญาต BSD
ตัวอย่างโค้ด
ตัวอย่างโค้ดด้านล่างนี้แสดงให้เห็นถึงวิธีการใช้เทคโนโลยีต่างๆ ใน Java EE 7 ร่วมกันเพื่อสร้างเว็บฟอร์มสำหรับแก้ไขข้อมูลผู้ใช้
ใน Jakarta EE สามารถสร้าง UI (ส่วนติดต่อผู้ใช้บนเว็บ) ได้โดยใช้Jakarta Servlet , Jakarta Server Pages ( JSP ) หรือJakarta Faces ( JSF ) ร่วมกับFaceletsตัวอย่างด้านล่างใช้ 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>ตัวอย่างคลาส Backing Bean
เพื่อช่วยให้เข้าใจได้ง่ายขึ้น Jakarta EE ใช้แนวคิดที่เรียกว่า "Backing Bean" ตัวอย่างด้านล่างนี้ใช้Contexts and Dependency Injection (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 ;ผู้ ใช้ ส่วนตัวuser ;@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 ; } }ตัวอย่างคลาส Data Access Object
ในการนำตรรกะทางธุรกิจไปใช้Jakarta Enterprise Beans ( EJB ) เป็นเทคโนโลยีเฉพาะใน Jakarta EE สำหรับการจัดเก็บข้อมูลจริง สามารถใช้ 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 Blueprints
- ใบอนุญาตการวิจัย Java
- ใบอนุญาต Sun Community Source
- ซัน จาวา ซิสเต็ม พอร์ทัล เซิร์ฟเวอร์
- เว็บคอนเทนเนอร์
- เจ2เอ็มอี
- Boost (ไลบรารี C++)
- ไลบรารี POCO C++
ลิงก์ภายนอก
- เว็บไซต์อย่างเป็นทางการ

- ผลิตภัณฑ์ที่เข้ากันได้กับ Jakarta EE: เซิร์ฟเวอร์แอปพลิเคชันและเว็บเซิร์ฟเวอร์ Java ระดับองค์กร - Eclipse Foundation
- บทช่วยสอน Jakarta EE อย่างเป็นทางการ
- บทเรียนแรกของ Jakarta EE : บทนำสู่ Jakarta EE
- คู่มือข้อมูลจำเพาะ Jakarta EE - แพลตฟอร์ม Jakarta EE
- ผู้เริ่มต้นอย่างเป็นทางการของ Jakarta EE : สร้างโครงการ Jakarta EE
- แพลตฟอร์ม Java รุ่น Enterprise Edition (Java EE)เครือข่ายเทคโนโลยี Oracle
- ช่อง YouTube อย่างเป็นทางการของ Jakarta EE
สรุปเนื้อหา
ข้อมูลสำคัญจากบทความ
ข้อมูลสำคัญเกี่ยวกับ จาการ์ตา อีอี
Jakarta EE ซึ่งเดิมชื่อ Java Platform, Enterprise Edition ( Java EE ) และ Java 2 Platform, Enterprise Edition ( J2EE ) เป็นชุดข้อกำหนดที่ขยาย Java SE [ 1 ]...
ประวัติศาสตร์
แพลตฟอร์มที่สร้างโดย Sun Microsystems เป็นที่รู้จักในชื่อ Java 2 Platform, Enterprise Edition หรือ J2EE ตั้งแต่เวอร์ชัน 1.2 จนกระทั่งเปลี่ยนชื่อเป็น Java Platform, Enterprise Edition หรือ Java EE ในเวอร์ชัน 1.5
ข้อกำหนด
Jakarta EE ประกอบด้วยข้อกำหนดหลายประการที่ตอบสนองวัตถุประสงค์ที่แตกต่างกัน เช่น การสร้างเว็บเพจ การอ่านและเขียนข้อมูลจากฐานข้อมูลในรูปแบบธุรกรรม และการจัดการคิวแบบกระจาย
ข้อกำหนดเว็บ
Jakarta Servlet : กำหนดวิธีการจัดการคำขอ HTTP ทั้งแบบซิงโครนัสและอะซิงโครนัส เป็นกลไกในระดับต่ำ และข้อกำหนดอื่นๆ ของ Jakarta EE ก็อาศัยกลไกนี้เป็นหลัก Jakarta WebSocket: ข้อกำหนด API ที่กำหนดชุด API สำหรับให้บริการ การเชื่อมต่อ WebSocket ; Jakarta Faces :...