Java EE Web Profile与Java EE完整平台


Answers:


101

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

在此处输入图片说明


1
更新:Web配置文件已更新。服务器组件已移至webprofile,例如JAX-RS,JAX-B等,并且添加了一些新组件,例如JSON-P。请参阅Jakarta EE的此文档以了解更多详细信息:jakarta.ee/specifications/webprofile/8/webprofile-spec-8.pdf
TarunChhabra

50

Oracle Corp过渡到Eclipse Foundation

在2017年末,OracleJava EE的责任交给了Eclipse Foundation。Java EE 8之后的将来版本将称为Eclipse Enterprise for Java(EE4J)。或Project EE4J。也许是EE.next。或Jakarta EE。品牌一直在变化。

Eclipse团队和Jakarta EE社区可以自由地重新定义或重新组织EE的各个部分。因此,下面的Java EE Web Profile与Java EE Full Platform讨论可能不适用于Jakarta EE 9和更高版本。

更改对Java SE的影响

在Java SE 11中,某些模块已删除。与Java EE相关的部分正在迁移到Jakarta EE项目的新家。其他诸如CORBA的产品也已被任何感兴趣的组织采用。参见JEP 320

雅加达EE 9

截至2020-06年, Jakarta EE Platform 9正在开发中。

重点是从各种规范中删除商标的Java名称。这包括移动到新的程序包名称jakarta.*

引用“ Jakarta EE 9发布计划”页面:

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

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

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

即使您可能会期望行为上具有向上兼容性,但命名更改将意味着版本9和更高版本将不是嵌入式二进制替换。不是世界末日。这可能意味着只需要更改import各种类文件中的包名称即可。阅读这个有关详细信息和链接。

雅加达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的问题仍然适用。

Java EE 8

Java EE 8已于2017年发布。查看版本历史

请参见JSR 366:Java平台企业版8(Java EE 8)规范

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

查看Java EE 8技术列表Oracle发布,以及指向JSR和规范的链接。

所有个人资料

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

Java SE版本8(或更高版本)

•由公共注释规范(资源,资源,PostConstruct,PreDestroy)定义的资源和组件生命周期注释

JNDI “ java:”命名上下文

•Java事务API(JTA)

网站资料

网站资料是完整的Java EE平台的特定子集,侧重于常用的元素。由诸如Apache TomEE之类的产品实现,或者由Eclipse Jetty plus附加组件实现

•所有Java EE概要文件所必需的基础级项目(上面列出:Java SE 8,生命周期注释,JNDI java:上下文和JTA)

•Servlet 4.0(JSR 369

•JavaServer Pages(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绑定(JSON-B)1.0(JSR 367)的Java API

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

•Java事务API(JTA)1.2

•Java持久性API(JPA)2.2

Bean验证2.0(JSR 380

•托管豆1.0

•拦截器1.2

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

•Java 1.0的依赖注入

•Java EE安全性API 1.0

•容器Java身份验证服务提供程序接口(JASPIC)1.1

仅限Servlet

作为使用Web Profile实现的更轻松的选择,您可以从Java Servlet / JSP实现开始,例如Apache TomcatEclipse Jetty。尽管这种方法不是官方的,但它非常流行。有时称为网络容器

HTTP Web服务器

•Servlet

•JavaServer页面(JSP)

•表达语言(EL)

WebSocket

•JNDI

使用此设置时,可以有选择地添加独立的库,以有选择地受益于各种Java EE技术。例如,对于我自己使用Vaadin Framework构建Web应用程序的工作,我将Java SE而不是EE与Tomcat一起使用,并添加Bean验证手动实现库,因为这是我从Java EE技术列表中所需的全部。

完整的Java EE

需要以下技术:

•Web配置文件中的所有项目

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

•JMS 2.0

•JavaMail 1.6

•连接器1.7

•Web服务1.4

•并发实用工具1.0

•Batch1.0

•Java EE管理1.1

•JACC 1.5

•JSP调试1.0

•Web服务元数据2.1

以下技术是可选的:

•EJB 3.2和更早的实体Bean及其关联的EJB QL

•JAX-RPC 1.1

•JAXR 1.0

•Java EE部署1.2

图表

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

Java SE 8,Web容器,Java EE 8 Web Profile,Java EE 8 Required和Java EE 8 Optional所需的各种技术的嵌套组图

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


请注意,开箱即用的Tomcat和Jetty都包含
JASPIC

1
亲爱的唐纳德·沃特(Dear Down-Voter),请在投票时提出批评。
罗勒·布尔克

@ArjanTijms可以提供指向JASPIC的Servlet容器概要文件的参考或文档的链接吗?我想将该信息合并到答案中。
罗勒·布尔克

Servlet容器配置文件的来源在这里:github.com/eclipse-ee4j/authentication/blob/master/spec/src/… 官方(里程碑)呈现的版本在这里:jakarta.ee/specifications/authentication/2.0/… 感谢您在这里提出的出色答案:)
Arjan Tijms

6

Java EE 6规范(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
  • 网络服务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
  • 托管豆1.0
  • Java EE 1.0的上下文和依赖注入
  • Java 1.0的依赖注入

没有可选技术。

网站资料定义

以下技术是Web配置文件的必需组件:

  • 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 Transaction API(JTA)1.1
  • Java持久性API(JPA)2.0
  • Bean验证1.0
  • 托管豆1.0
  • 拦截器1.1
  • Java EE平台1.0的上下文和依赖注入
  • Java 1.06的依赖注入

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

对于Java EE 7,存在所有EE技术的列表,还显示了Web Profile中包含的技术。Web Profile中包括了以前仅在Full Profile中才可用的某些技术,例如JAX-RS。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.