【问题标题】:Java EE Web Profile vs Java EE Full PlatformJava EE Web 配置文件与 Java EE 完整平台
【发布时间】:2014-08-06 01:24:56
【问题描述】:

Java EE Web Profile 认证服务器(如 JOnAS)和 Java EE 全平台 认证服务器(如 JBoss AS)有什么区别?

【问题讨论】:

标签: jakarta-ee


【解决方案1】:

这是一个很好的解释它的图像。 Web profile 是 Java EE 的一个子集,它的目的是允许开发人员创建更轻量级的应用程序,这些应用程序可以在简单的 servlet 容器(如 Tomcat 或 Jetty)中使用。

【讨论】:

【解决方案2】:

Java EE 6 specification (JSR 316) 包含以下列表:

完整的 Java EE 产品要求

需要以下技术:

  • EJB 3.1
  • Servlet 3.0
  • JSP 2.2
  • EL 2.2
  • JMS 1.1
  • JTA 1.1
  • JavaMail 1.4
  • 连接器 1.6
  • Web 服务 1.3
  • JAX-RPC 1.1
  • JAX-WS 2.2
  • JAX-RS 1.1
  • JAXB 2.2
  • JAXR 1.0
  • Java EE 管理 1.1
  • Java EE 部署 1.2
  • JACC 1.4
  • JASPIC 1.0
  • JSP 调试 1.0
  • JSTL 1.2
  • Web 服务元数据 2.1
  • JSF 2.0
  • 常用注解 1.1
  • Java 持久性 2.0
  • Bean 验证 1.0
  • 托管 Bean 1.0
  • Java EE 1.0 的上下文和依赖注入
  • Java 1.0 的依赖注入

没有可选技术。

网络配置文件定义

以下技术是 Web Profile 的必需组件:

  • Servlet 3.0
  • JavaServer 页面 (JSP) 2.2
  • 表达式语言 (EL) 2.2
  • 其他语言的调试支持 (JSR-45) 1.0
  • JavaServer Pages (JSTL) 1.2 标准标记库
  • JavaServer Faces (JSF) 2.0
  • Java 平台 (JSR-250) 1.1 的通用注释
  • 企业 JavaBeans (EJB) 3.1 Lite
  • Java 事务 API (JTA) 1.1
  • Java 持久性 API (JPA) 2.0
  • Bean 验证 1.0
  • 托管 Bean 1.0
  • 拦截器 1.1
  • Java EE Platform 1.0 的上下文和依赖注入
  • Java 1.06 的依赖注入

Web 配置文件中没有可选组件。

对于 Java EE 7,所有 EE 技术中有一个list,还显示了哪些包含在 Web Profile 中。以前仅在完整配置文件中可用的一些技术现在包含在 Web 配置文件中,例如 JAX-RS。

【讨论】:

    【解决方案3】:

    tl;博士

    一个符合 Jakarta EE 平台 配置文件的应用服务器实现了十多个 specifications,它们执行一个符合 Jakarta EE Web 配置文件的应用服务器 em>。

    换句话说,Web Profile 兼容服务器提供平台 兼容服务器提供的功能子集

    平台 profile = Web Profile + 更多内容

    Oracle CorpEclipse Foundation 的过渡

    在 2017 年底,OracleJava EE 的职责交给了 Eclipse Foundation。 Java EE 8 之后的未来版本将称为Eclipse Enterprise For Java (EE4J)。或EE4J 项目。或者也许EE.next。或Jakarta EE。品牌一直在变化。

    Java SE 变更的影响

    在 Java SE 11 中,一些模块被删除。 Java EE 相关部分正在转移到 Jakarta EE 项目的新家。其他如CORBA 已提供给任何感兴趣的组织采用。见JEP 320

    雅加达 EE 10

    Jakarta EE 10 现在正在计划中(2021-09)。在从 Oracle Corp 过渡到 Eclipse Foundation 的所有阶段之后,该平台现在可以在重大改进、新功能和不需要的功能的修剪方面取得进展。

    版本 10 可能会涉及一些兼容性中断,以促进创新。但还没有什么是一成不变的。如果您有兴趣/疑虑/建议/贡献,请立即参与公开流程。

    Java SE 11 将成为 Jakarta EE 兼容实现支持的最小运行时。

    有关详细信息,请参阅:

    Jakarta EE 10 中的平台配置文件

    有关对平台配置文件的拟议更改的概述,请参阅Define Jakarta EE Platform 10 #364

    Jakarta EE 10 中的核心配置文件

    除了当前的Web Profile 和(完整的)Platform Profile 之外,Jakarta EE 10 可能会获得一个新的配置文件Core Profile

    核心平台针对适合microservicesahead-of-time compilation 的较小运行时。请参阅 GitHub 页面,Define Jakarta EE Core Profile 10 #387

    Jakarta EE 10 中的 Web 配置文件

    Ivar Grimstad 已提议对Define Jakarta EE Web Profile 10 #363 中列出的 Java EE 10 中的 Web Profile 进行更改。

    提议的新增内容

    主要更新

    小更新

    没有更新

    • Jakarta 对其他语言 2.0 的调试支持
    • Jakarta Annotations 2.0
    • Jakarta Enterprise Beans 4.0 Lite
    • 雅加达交易 2.0
    • Jakarta Bean 验证 3.0
    • Jakarta Managed Beans 2.0
    • Jakarta Interceptors 2.0
    • Jakarta 依赖注入 2.0

    雅加达 EE 9.1

    Jakarta EE 9.1released 2021-05

    见:

    9.1 版使 Jakarta EE 与 Java SE 11 兼容。这是唯一的重大变化。很少的 API 更改,没有什么不兼容的。 9.1 版在功能上等同于 Jakarta EE 9。

    雅加达 EE 9

    Jakarta EE Platform 9released 2020-12

    重点是从各种规范中删除商标 Java 名称。这包括移动到新的包名称jakarta.*。从某种特定意义上说,这是一个破坏性版本,因为项目必须更新到新包才能在 EE 9 服务器上运行。更改包名称后,现有应用程序将运行良好,只需很少或没有其他更改。

    引用Jakarta EE 9 Release Plan页面:

    Jakarta EE 9 版本的目标是提供一组功能上与 Jakarta EE 8 相似但在新的 Jakarta EE 9 命名空间jakarta.* 中的规范。

    此外,Jakarta EE 9 版本从 Jakarta EE 8 中删除了旧的、可选的或已弃用的规范,以减少 API 的表面积,以确保新供应商更容易进入生态系统 - 因为并减轻这些旧 API 的实施、迁移和维护负担。

    项目团队主要将 Jakarta EE 9 视为一个工具版本……

    尽管您可能会期望行为上的向上兼容性,但命名更改意味着版本 9 及更高版本 不是 是嵌入式二进制替代品。不是世界末日。这可能意味着您在各种类文件中更改import 包名称。阅读thisthis 了解详细信息和链接。

    雅加达 EE 8

    Jakarta EE Platform 8 实际上与 Java EE 8 相同。

    作为从 Oracle 过渡的一部分,Eclipse 团队将 Java EE 8 重新发布为 Jakarta EE 8,使用他们新的基础架构来存放代码和构建。相同的 EE 行为,相同的内部命名和包结构。因此,下面讨论的有关 Java EE Web Profile 与 Java EE Full Platform 的问题仍然适用。

    Jakarta EE 8 使用从 Oracle 公司借来的 javax.* 包命名。版本 9 将包命名更改为 jakarta.*

    Java EE 8

    Java EE 8 于 2017 年发布。见history of versions

    详情请见JSR 366: Java Platform, Enterprise Edition 8 (Java EE 8) Specification

    Java EE 是Java Standard Edition (Java SE) 的超集。任何 Java EE 8 实现也是 Java SE 8 或更高版本的实现。

    查看由 Oracle 发布的 list of Java EE 8 technologies,其中包含指向 JSR 和规范的链接。

    所有个人资料

    所有 Java EE 配置文件中都必须包含以下技术:

    Java SE 版本8 (or later)

    • Common 定义的资源和组件生命周期注释 注释规范(Resource、Resources、PostConstruct、PreDestroy)

    JNDI“java:”命名上下文

    • Java 事务 API (JTA)

    网络资料

    Web Profile 是整个 Java EE 平台的一个特定子集,专注于常用元素。由Apache TomEE 等产品实现,或几乎与Eclipse Jetty plus add-ons 实现。

    • 所有 Java EE 配置文件所需的基本级别项目(上面列出:Java SE 8、生命周期注释、JNDI java: 上下文和 JTA)

    • Servlet 4.0 (JSR 369)

    • JavaServer 页面 (JSP) 2.3

    • 表达式语言 (EL) 3.0 (JSR 341)

    • 其他语言的调试支持 (JSR-45) 1.0

    • JavaServer Pages (JSTL) 1.2 标准标记库

    • JavaServer Faces (JSF) 2.3 (JSR 372)

    • 用于 RESTful Web 服务的 Java API (JAX-RS) 2.1

    • 适用于 WebSocket 的 Java API (WebSocket) 1.1 (JSR 356)

    • 用于 JSON 处理的 Java API (JSON-P) 1.1 (JSR 374)

    • 用于 JSON 绑定的 Java API (JSON-B) 1.0 (JSR 367)

    • Java 平台 (JSR-250) 1.3 的通用注释• Enterprise JavaBeans (EJB) 3.2 Lite

    • Java 事务 API (JTA) 1.2

    • Java 持久性 API (JPA) 2.2

    Bean Validation2.0 (JSR 380)

    • 托管 Bean 1.0

    • 拦截器 1.2

    • Java EE Platform 2.0 的上下文和依赖注入

    • Java 1.0 的依赖注入

    • Java EE 安全 API 1.0

    • 容器的​​ Java 身份验证服务提供者接口 (JASPIC) 1.1

    面向 Servlet(Tomcat & Jetty

    作为使用 Web Profile 实现的更轻松的替代方案,您可以从 Java Servlet/JSP 实现开始,例如 Apache TomcatEclipse Jetty。虽然不是官方的个人资料,但这种方法非常受欢迎。有时称为web container

    恕我直言,这早就应该正式化为 JavaEE / Jakarta EE 配置文件了。鉴于 Tomcat 和 Jetty 的广受欢迎,对我来说,正式配置文件的必要性和好处似乎很明显。

    使用此设置时,您可以选择性地添加独立库,以选择性地从各种 Java EE 技术中受益。例如,对于我自己使用Vaadin Flow 构建Web 应用程序的工作,我使用Java SE 和Tomcat。有时我会手动添加一个 Bean Validation 实现库,因为这就是我需要的 Java EE 技术列表中的全部内容。

    一些 Jakarta EE 规范已经过重新设计,可以直接与基于 Java SE 的应用程序一起使用,而无需 Jakarta EE 服务器。并且正在计划更多这样的重新设计。此类规范的实现可以与 Tomcat 或 Jetty 一起使用。

    当然,在某些时候,与其继续向您的 Tomcat/Jetty 项目中添加更多面向 Jakarta EE 的库,不如改用符合更广泛的 Jakarta EE 配置文件之一的服务器可能更有意义。

    完整的 Java EE

    需要以下技术:

    • 网络资料中的所有项目

    • EJB 3.2(EJB 实体 bean 和关联的 EJBQL 除外,它们已成为可选)

    • JMS 2.0

    • JavaMail 1.6

    • 连接器 1.7

    • 网络服务 1.4

    • 并发实用程序 1.0

    • Batch1.0

    • Java EE 管理 1.1

    • JACC 1.5

    • JSP 调试 1.0

    • 网络服务元数据 2.1

    以下技术是可选的:

    • EJB 3.2 和更早版本的实体 bean 和关联的 EJB QL

    • JAX-RPC 1.1

    • JAXR 1.0

    • Java EE 部署 1.2

    图表

    这是一个显示嵌套需求组的图表。

    此图上方的列表可能更准确;此图未经仔细检查。

    【讨论】:

    • 请注意,开箱即用的 Tomcat 和 Jetty 都包含 JASPIC 的 Servlet 容器配置文件,它本身就是完整 JASPIC 的子集(有点像 EJB-lite)
    • 亲爱的投票者,请在投票的同时留下批评意见。
    • @ArjanTijms 您能否提供有关 JASPIC 的 Servlet 容器配置文件的参考或文档的链接?我想将该信息合并到答案中。
    • Servlet Container Profile 的来源在这里:github.com/eclipse-ee4j/authentication/blob/master/spec/src/… 官方(里程碑)渲染版本在这里:jakarta.ee/specifications/authentication/2.0/… 感谢您在这里的出色回答:)
    • 好答案,谢谢!仅供参考,有一个指向 Web 配置文件规范的 Eclipse 主页的链接,包括 8、9、9.1 和 10:jakarta.ee/specifications/webprofile
    猜你喜欢
    • 2011-09-06
    • 2016-12-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-06-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多