Java EE Web Profile vs Java EE Full Platform

倖福魔咒の 提交于 2019-11-26 03:50:43

问题


What is the difference between a Java EE Web Profile certified server (like JOnAS) and a Java EE Full Platform certified server (like JBoss AS)?


回答1:


Here is nice image which explains it. Web profile is a subset of Java EE and it's purpose is to allow developers to create more lightweight applications which can be used inside simple servlet container (like Tomcat or Jetty).




回答2:


Future

In late 2017, Oracle gave responsibility for Java EE to the Eclipse Foundation. Future versions after Java EE 8 will be known as Eclipse Enterprise For Java (EE4J). Or Project EE4J. Or maybe EE.next. Or Jakarta EE. The branding has been changing in recent months.

As part of the transition from Oracle, the Eclipse team will re-release Java EE 8 as Jakarta EE 8 using their new infrastructure for housing code and making builds. Same EE behavior, same internal naming and package structure. So the issues discussed below about Java EE Web Profile versus Java EE Full Platform will still apply.

However, the next version bringing new features (Jakarta EE 9) will likely require new naming of packages and possibly the naming of the various APIs that make up EE. So even though you will likely be able to expect upward compatibility in behavior, the naming changes will mean version 9 and later will not be a drop-in binary replacement. Not the end of the world. This may mean as little as you changing the import package names in your various class files. Read this and this for details and links.

Furthermore, the Eclipse team and Jakarta EE community will be free to re-define or re-organize the various parts of EE. So the Java EE Web Profile versus Java EE Full Platform discussion below may not apply directly to Jakarta EE 9 and later.

Another note if you are using more recent Java SE versions underlying EE… In Java SE 11, some modules are dropped. The Java EE related parts are moving to a new home at the Jakarta EE project. Others such as CORBA have been offered for adoption by any interested organization. See JEP 320.

Java EE 8

Java EE 8 was released 2017. See history of versions.

See JSR 366: Java Platform, Enterprise Edition 8 (Java EE 8) Specification for details.

Java EE is a superset of Java Standard Edition (Java SE). Any Java EE 8 implementation is also an implementation of Java SE 8 or later.

See a list of Java EE 8 technologies published by Oracle, with links to JSRs and specs.

All profiles

The following technologies are required to be present in all Java EE profiles:

• Java SE version 8 (or later)

• Resource and component lifecycle annotations defined by the Common Annotations specification (Resource, Resources, PostConstruct, PreDestroy)

• JNDI “java:” naming context

• Java Transaction API (JTA)

Web Profile

The Web Profile is a specific subset of the full Java EE platform, focusing on commonly used elements. Implemented by products such as Apache TomEE or nearly so with Eclipse Jetty plus add-ons.

• Base level items required by all Java EE profiles ( listed above: Java SE 8, lifecycle annotations, JNDI java: context, and JTA )

• Servlet 4.0 (JSR 369)

• JavaServer Pages (JSP) 2.3

• Expression Language (EL) 3.0 (JSR 341)

• Debugging Support for Other Languages (JSR-45) 1.0

• Standard Tag Library for JavaServer Pages (JSTL) 1.2

• JavaServer Faces (JSF) 2.3 (JSR 372)

• Java API for RESTful Web Services (JAX-RS) 2.1

• Java API for WebSocket (WebSocket) 1.1 (JSR 356)

• Java API for JSON Processing (JSON-P) 1.1 (JSR 374)

• Java API for JSON Binding (JSON-B) 1.0 (JSR 367)

• Common Annotations for the Java Platform (JSR-250) 1.3 • Enterprise JavaBeans (EJB) 3.2 Lite

• Java Transaction API (JTA) 1.2

• Java Persistence API (JPA) 2.2

• Bean Validation 2.0 (JSR 380)

• Managed Beans 1.0

• Interceptors 1.2

• Contexts and Dependency Injection for the Java EE Platform 2.0

• Dependency Injection for Java 1.0

• Java EE Security API 1.0

• Java Authentication Service Provider Interface for Containers (JASPIC) 1.1

Servlet-only

As a lighter alternative to using a Web Profile implementation, you could start with a Java Servlet/JSP implementation such as Apache Tomcat or Eclipse Jetty. While not official as a profile, this approach is very popular. Sometimes known as a web container.

• HTTP web server

• Servlet

• JavaServer Pages (JSP)

• Expression Language (EL)

• WebSocket

• JNDI

When using this setup, you may selectively add independent libraries to benefit selectively from the various Java EE technologies. For example, for my own work building web apps using the Vaadin Framework, I use Java SE rather than EE, with Tomcat, and add a Bean Validation implementation library manually as that is all I need from the Java EE list of technologies.

Full Java EE

The following technologies are required:

• All the items in Web Profile

• EJB 3.2 (except for EJB entity beans and associated EJBQL, which have been made optional)

• JMS 2.0

• JavaMail 1.6

• Connector 1.7

• WebServices 1.4

• Concurrency Utilities 1.0

• Batch1.0

• Java EE Management 1.1

• JACC 1.5

• JSP Debugging 1.0

• Web Services Metadata 2.1

The following technologies are optional:

• EJB 3.2 and earlier entity beans and associated EJB QL

• JAX-RPC 1.1

• JAXR 1.0

• Java EE Deployment 1.2

Diagram

Here is a diagram to show the nested groups of requirements.

The list above this diagram may be more accurate; this diagram has not been double-checked.




回答3:


The Java EE 6 specification (JSR 316) contains the following lists:

Full Java EE Product Requirements

The following technologies are required:

  • EJB 3.1
  • Servlet 3.0
  • JSP 2.2
  • EL 2.2
  • JMS 1.1
  • JTA 1.1
  • JavaMail 1.4
  • Connector 1.6
  • Web Services 1.3
  • JAX-RPC 1.1
  • JAX-WS 2.2
  • JAX-RS 1.1
  • JAXB 2.2
  • JAXR 1.0
  • Java EE Management 1.1
  • Java EE Deployment 1.2
  • JACC 1.4
  • JASPIC 1.0
  • JSP Debugging 1.0
  • JSTL 1.2
  • Web Services Metadata 2.1
  • JSF 2.0
  • Common Annotations 1.1
  • Java Persistence 2.0
  • Bean Validation 1.0
  • Managed Beans 1.0
  • Contexts and Dependency Injection for Java EE 1.0
  • Dependency Injection for Java 1.0

There are no optional technologies.

Web Profile Definition

The following technologies are required components of the 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

There are no optional components in the Web Profile.

For Java EE 7, there is a list of all EE technologies, also showing which are included in the Web Profile. Some technologies formerly available only in the Full Profile are now included in the Web Profile, such as JAX-RS.



来源:https://stackoverflow.com/questions/24239978/java-ee-web-profile-vs-java-ee-full-platform

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!