Java EE Web Profile认证服务器(如JOnAS)和Java EE Full Platform认证服务器(如JBoss AS)之间的区别是什么?
Java EE Web Profile认证服务器(如JOnAS)和Java EE Full Platform认证服务器(如JBoss AS)之间的区别是什么?
这里有一张漂亮的图片来解释它。Web Profile 是 Java EE 的一个子集,其目的是允许开发人员创建更轻量级的应用程序,可以在简单的 Servlet 容器(如 Tomcat 或 Jetty)中使用。
一个符合Jakarta EE平台配置文件的应用服务器实现了十几个以上的规范,而符合Jakarta EE Web配置文件的应用服务器则实现了更少的功能。
换句话说,符合Web配置文件的服务器提供平台配置文件兼容服务器所提供功能的子集:
平台配置文件= Web配置文件+更多内容
Jakarta EE 10现在正在计划中(2021-09)。在从Oracle Corp到Eclipse Foundation的过渡的所有阶段之后,该平台现在可以进行重大改进、新增功能和修剪不需要的功能。
版本10可能涉及一些兼容性问题,以促进创新。但还没有最终确定。如果您有兴趣/关注/建议/贡献,请立即参与开放式进程。
Java SE 11将成为Jakarta EE兼容实现所支持的最低运行时版本。Ivar Grimstad提议在Java EE 10中对Web Profile进行更改,列在定义Jakarta EE Web Profile 10#363上。
参见:
版本9.1使Jakarta EE与Java SE 11兼容。这是唯一的重大变化。API变化很少,没有不兼容的情况。版本9.1在功能上等同于Jakarta EE 9。
Jakarta EE Platform 9在2020年12月发布。
重点在于将商标注册名称“Java”从各种规范中移除,包括迁移到新的包名称“jakarta.*”。从这个特定意义上讲,这是一个破坏性发布,因为项目必须更新到新的包才能在EE 9服务器上运行。更改包名称后,现有应用程序将不需要或只需要很少的其他更改即可正常运行。import
包名称。详细信息和链接请阅读this和this。
Jakarta EE平台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 Corp借用的javax.*
包命名。第9版将包命名更改为jakarta.*
。
有关详细信息,请参见JSR 366:Java平台企业版8(Java EE 8)规范。
Java EE是Java标准版(Java SE)的超集。任何Java EE 8实现也是Java SE 8或更高版本的实现。
请参见由Oracle发布的Java EE 8技术列表,其中包含到JSR和规范的链接。
Web Profile是完整Java EE平台的一个特定子集,专注于常用元素。由产品例如Apache TomEE或几乎相同的Eclipse Jetty加上插件实现。
• 所有Java EE配置文件都需要的基本级别项目(上面列出的:Java SE 8、生命周期注释、JNDI
java:
上下文和JTA)
• Servlet 4.0(JSR 369)
• 表达式语言(EL)3.0(JSR 341)• JavaServer Pages(JSP)2.3
在我看来,这应该早就被正式制定为JavaEE / Jakarta EE配置文件。考虑到Tomcat和Jetty的巨大流行,一个正式的配置文件的需求和好处对我来说是显而易见的。
使用此设置时,您可以有选择地添加独立库以有选择地从各种Java EE技术中受益。例如,对于我自己构建Web应用程序使用Vaadin Flow的工作,我使用带有Tomcat的Java SE。有时,我会手动添加Bean Validation实现库,因为这是我从Java EE技术列表中所需的全部。Java EE 6规范(JSR 316)包含以下列表:
以下技术是Web Profile所需的必要组件:
- Servlet 3.0
- JavaServer Pages (JSP) 2.2
- Expression Language (EL) 2.2
- Debugging Support for Other Languages (JSR-45) 1.0
- Standard Tag Library for JavaServer Pages (JSTL) 1.2
- JavaServer Faces (JSF) 2.0
- Common Annotations for theJava Platform (JSR-250) 1.1
- Enterprise JavaBeans (EJB) 3.1 Lite
- Java Transaction API (JTA) 1.1
- Java Persistence API (JPA) 2.0
- Bean Validation 1.0
- Managed Beans 1.0
- Interceptors 1.1
- Contexts and Dependency Injection for the Java EE Platform 1.0
- Dependency Injection for Java 1.06
Web Profile中没有可选组件。
对于Java EE 7,有一个list列出了所有EE技术,并显示哪些包含在Web Profile中。一些以前仅在Full Profile中可用的技术现在已包含在Web Profile中,例如JAX-RS。