2.7 Jakarta EE 标准服务
Jakarta EE 标准服务包含以下各项(本文档后续章节会给出更详细的说明)。其中部分标准服务实际由 Java SE 提供。
2.7.1 HTTP
HTTP 客户端 API 由 java.net 包定义。HTTP 服务端 API 由 Jakarta RESTful Web 服务、Jakarta Servlet、Jakarta Pages、Jakarta Faces 接口定义并使用,同时也由 Jakarta XML Web 服务支持,但该部分已不再是 Jakarta EE 平台的必需组成部分。
2.7.2 HTTPS
基于 SSL 协议的 HTTP 协议(HTTPS),所使用的客户端与服务端 API 与 HTTP 完全一致。
2.7.3 Jakarta 事务 API
Jakarta 事务包含两部分:
- 应用级事务划分接口,供容器与应用组件划分事务边界使用。
- 事务管理器与资源管理器之间的接口,用于 Jakarta EE SPI 层面。
2.7.4 JDBC™ API
JDBC API 是用于关系型数据库系统连接的 API。JDBC API 分为两部分:供应用组件访问数据库的应用级接口,以及将 JDBC 驱动接入 Jakarta EE 平台的服务提供者接口。 Jakarta EE 产品不强制要求支持该服务提供者接口。JDBC 驱动应打包为资源适配器,通过 Jakarta 连接器 API 的能力与 Jakarta EE 产品对接。 JDBC API 已包含在 Java SE 中,但本规范对 JDBC 驱动提出了额外要求。
2.7.5 Jakarta 持久化 API
Jakarta 持久化是用于管理持久化与对象/关系映射的标准 API。它为应用开发者提供对象/关系映射工具,支持使用 Java 领域模型管理关系型数据库。 Jakarta EE 平台必须支持 Jakarta 持久化,该 API 也可在 Java SE 环境中使用。
2.7.6 Jakarta 数据 API
Jakarta Data 规范提供一套简化数据访问的 API。Java 开发者可通过多项功能将持久化逻辑与模型分离,例如在 Repository 接口上组合自定义查询方法。
Jakarta Data 的目标是为数据访问提供一套易用、一致且基于 Jakarta 的编程模型,同时保留底层数据存储的特有特性。
2.7.7 Jakarta™ 消息服务
Jakarta 消息服务是一套标准消息 API,支持可靠的点对点消息与发布-订阅模式。 本规范要求 Jakarta 消息服务提供者同时实现点对点消息与发布-订阅消息功能。Jakarta EE 产品提供商还必须提供预配置的默认 Jakarta 消息连接工厂,供应用程序访问该消息服务提供者使用。参见“默认 Jakarta 消息连接工厂”。
2.7.8 Java 命名与目录接口™(JNDI)
JNDI API 是命名与目录访问的标准 API。JNDI API 分为两部分:供应用组件访问命名与目录服务的应用级接口,以及接入命名与目录服务提供者的服务提供者接口。 JNDI API 已包含在 Java SE 中,但本规范对其定义了额外要求。
2.7.9 Jakarta™ 邮件
许多互联网应用需要发送邮件通知,因此 Jakarta EE 平台包含 Jakarta Mail API 及对应的服务提供者,支持应用组件发送互联网邮件。 Jakarta Mail API 分为两部分:供应用组件发送邮件的应用级接口,以及用于 Jakarta EE SPI 层面的服务提供者接口。
2.7.10 Jakarta 激活
Jakarta Activation API 提供一套框架,用于处理不同 MIME 类型、不同格式与来源的数据。Jakarta Mail API 会使用 Jakarta Activation API。 自 Jakarta EE 9 起,Jakarta Activation 正式纳入 Jakarta EE 平台。
2.7.11 XML 处理
Java™ XML 处理 API(JAXP)支持业界标准的 SAX、DOM 解析 XML 文档,同时支持 XSLT 转换引擎。 XML 流式 API(StAX)提供 XML 拉式解析 API。 JAXP 与 StAX API 已包含在 Java SE 中,因此 Jakarta EE 应用可直接使用。
2.7.12 Jakarta 连接器
Jakarta 连接器是一套 Jakarta EE SPI,支持接入可访问企业信息系统(EIS)的资源适配器,使其能适配任意 Jakarta EE 产品。 Jakarta 连接器规范定义了 Jakarta EE 服务器与资源适配器之间的一组标准系统级契约,包括:
- 连接管理契约:允许 Jakarta EE 服务器对底层企业信息系统的连接进行池化管理,并支持应用组件连接至 EIS,从而构建可支撑大量客户端访问的可扩展应用环境。
- 事务管理契约:适用于支持事务访问的 EIS 资源管理器,允许 Jakarta EE 服务器通过事务管理器管理跨多个资源管理器的事务,也支持在 EIS 资源管理器内部管理事务,无需依赖外部事务管理器。
- 安全契约:实现对 EIS 的安全访问,构建安全的应用环境,降低对 EIS 的安全威胁,保护其管理的核心信息资源。
- 线程管理契约:允许资源适配器将任务委托给其他线程,并由应用服务器管理线程池。资源适配器可控制工作线程所使用的安全上下文与事务上下文。
- 消息交付契约:允许资源适配器向消息驱动 Bean 投递消息,与具体的消息风格、语义及底层消息基础设施无关。该契约同时作为标准消息提供者可插拔契约,支持消息提供者通过资源适配器接入任意 Jakarta EE 服务器。
- 事务上下文传播契约:允许资源适配器将导入的事务上下文传递给 Jakarta EE 服务器,使其与服务器及应用组件的交互归属该导入事务,保证事务的 ACID(原子性、一致性、隔离性、持久性)特性。
- 可选命令契约:提供应用程序与资源适配器之间的通用命令接口。
2.7.13 安全服务
Java™ 认证与授权服务(JAAS)支持服务对用户进行身份认证并实施访问控制。它实现了标准可插拔认证模块(PAM)框架的 Java 版本,并支持基于用户的授权控制。
Jakarta™ 授权定义了 Jakarta EE 应用服务器与授权服务提供者之间的契约,支持自定义授权服务提供者接入任意 Jakarta EE 产品。
Jakarta™ 认证定义一套 SPI,支持实现消息认证机制的认证提供者集成到客户端或服务端消息处理容器/运行时。
Jakarta 安全基于 Jakarta 认证实现,同时为 Web 应用用户提供更易用的认证 SPI,并定义用于认证与授权的身份存储 API。
2.7.14 XML Web 服务
自 Jakarta EE 11 起,Jakarta XML Web 服务、XML 绑定及带附件的 SOAP 已从平台中移除。参见“已移除的 Jakarta 技术”。
自 Jakarta EE 9 起,Jakarta XML 注册中心支持已从平台中移除。参见“已移除的 Jakarta 技术”。
2.7.15 Jakarta JSON 处理
Jakarta JSON 处理提供便捷的方式对 JSON 文本进行解析、生成、转换与查询操作。
2.7.16 Jakarta JSON 绑定
Jakarta JSON 绑定提供便捷的方式实现 JSON 文本与 Java 对象之间的相互转换。
2.7.17 Jakarta WebSocket
Jakarta WebSocket 是用于创建 WebSocket 应用的标准 API。
2.7.18 Jakarta RESTful Web 服务
Jakarta RESTful Web 服务支持基于 REST 风格的 Web 服务。RESTful Web 服务更贴合 Web 设计风格,且易于被多种编程语言访问。 该规范提供编写此类服务的简洁高层 API,以及可精细控制服务交互细节的底层 API。
2.7.19 Jakarta 并发
Jakarta 并发是一套标准 API,通过以下对象为 Jakarta EE 应用组件提供异步能力:托管执行器服务、托管调度执行器服务、托管线程工厂与上下文服务。
2.7.20 Jakarta 批处理
Jakarta 批处理 API 为批处理应用提供编程模型,并提供用于调度与执行作业的运行时环境。
2.7.21 Jakarta 企业级 Bean
在本平台规范中,以下两项特性已移除:
- 实体 Bean(包括容器管理持久化与 Bean 管理持久化)
- 嵌入式 EJB 容器
