未来
2017年底,Oracle将Java EE的责任交给了Eclipse Foundation。 Java EE 8之后的将来版本将称为Eclipse Enterprise Java(EE4J)。 或Project EE4J。 也许是EE.next。 或Jakarta EE。 最近几个月,品牌一直在变化。
作为从Oracle过渡的一部分,Eclipse团队将使用其用于存储代码和进行构建的新基础结构将Java EE 8重新发布为Jakarta EE 8。 相同的EE行为,相同的内部命名和程序包结构。 因此,下面讨论的有关Java EE Web Profile和Java EE Full Platform的问题仍然适用。
但是,具有新功能的下一个版本(Jakarta EE 9)可能需要对软件包进行新命名,并且可能需要对构成EE的各种API进行命名。 因此,即使您可能会期望行为上具有向上兼容性,但命名更改将意味着版本9和更高版本将不是嵌入式二进制替换。 不是世界末日。 这可能意味着只需要更改各种类文件中的java:包名称即可。 阅读此内容,了解详细信息和链接。
此外,Eclipse团队和Jakarta EE社区将可以自由地重新定义或重新组织EE的各个部分。 因此,下面的Java EE Web Profile与Java EE Full Platform讨论可能不适用于Jakarta EE 9及更高版本。
如果您使用的是基于EE的最新Java SE版本,则需要另外注意:在Java SE 11中,某些模块已删除。 Java EE相关的部分正在迁移到Jakarta EE项目的新家。 其他诸如CORBA的产品也已被任何感兴趣的组织采用。 参见JEP 320。
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或更高版本的实现。
请参阅Oracle发布的Java EE 8技术列表,以及指向JSR和规范的链接。
所有个人资料
所有Java EE概要文件中都必须包含以下技术:
•Java SE版本8(或更高版本)
•Common定义的资源和组件生命周期注释 注释规范(资源,资源,PostConstruct,PreDestroy)
•JNDI“ java:”命名上下文
•Java交易API(JTA)
网站资料
Web Profile是整个Java EE平台的特定子集,主要关注常用元素。 由诸如Apache TomEE之类的产品实现,或者由Eclipse Jetty附加组件实现。
•所有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 Tomcat或Eclipse Jetty。 尽管这种方法不是官方的,但它非常流行。 有时称为网络容器。
•HTTP Web服务器
•Servlet
•JavaServer页面(JSP)
•表达语言(EL)
•WebSocket
•JNDI
使用此设置时,可以有选择地添加独立的库,以有选择地受益于各种Java EE技术。 例如,对于我自己使用Vaadin框架构建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
图表
这是显示嵌套需求组的图。
此图上方的列表可能更准确; 此图尚未经过仔细检查。