Java EE Web Profile vs Java EE Full Platform

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)?

+53


source to share


3 answers


Here's a nice image that explains it. The web profile is a subset of Java EE and allows developers to create lighter applications that can be used in a simple servlet container (such as Tomcat or Jetty).



enter image description here

+75


source


Future

In late 2017, Oracle transferred responsibility for Java EE to the Eclipse Foundation . Future releases after Java EE 8 will be called Eclipse Enterprise For Java (EE4J) . Or the EE4J project. Or maybe EE.next. Or Jakarta E. Branding has changed in recent months.

As part of the move away from Oracle, the Eclipse team will re-release Java EE 8 as Jakarta EE 8, using its new framework for housing coding and assembly. Same EE behavior, same internal naming and package structure. Thus, the questions discussed below about the Java EE Web Profile versus the full Java EE framework will still apply.

However, the next version with new features (Jakarta EE 9) will probably require new package naming and possibly naming of the various APIs that make up EE. Thus, even though you can probably expect upward compatibility in behavior, the name changes will mean version 9 and will not be a binary replacement later. Not the end of the world. This can mean as little as changing package names import

in different class files. Read this and this for details and links.

In addition, the Eclipse team and the EE community in Jakarta are free to revise or reorganize various parts of EE. Therefore, the Java EE Web Profile and Full Java EE Framework below may not apply directly to Jakarta EE 9 and later.

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

Java EE 8

Java EE 8 was released in 2017. See version history .

See the JSR 366 specification for details. Java Platform, Enterprise Edition 8 (Java EE 8) .

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

See List of Java EE 8 Technologies Published by Oracle with links to JSRs and specifications.

All profiles

The following technologies must be present in all Java EE profiles:

Java SE version 8 (or higher)

• Resource and component lifecycle annotations defined in 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 that targets frequently used elements. Implemented by products like Apache TomEE or almost with the Eclipse Jetty plus add-ons .

• Baseline elements required for 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 processing JSON (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 Inspection 2.0 ( JSR 380 )

• Managed beans 1.0

• interceptors 1.2

• Contexts and Dependency Injection for the Java EE 2.0 Platform

• Dependency Injection for Java 1.0

• Java EE 1.0 Security API

• Java Authentication Service Provider for Containers (JASPIC) 1.1

Servlet only

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

HTTP web server

• Servlet

• JavaServer Pages (JSP)

• expression language (EL)

WebSocket

• JNDI

With this setting, you can selectively add independent libraries to selectively benefit from various Java EE technologies. For example, for my own work of building web applications using the Vaadin Framework, I use Java SE, not EE, with Tomcat, and add the Bean Validation implementation library manually as that is all I need from the list of Java EE technologies.

Full Java EE

The following technologies are required:

• All elements in the web profile

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

• JMS 2.0

• JavaMail 1.6

• Connector 1.7

• Web Services 1.4

• Parallel Utilities 1.0

• Package 1.0

• Java EE Management 1.1

• JACC 1.5

• JSP Debugging 1.0

• Metadata of web services 2.1

The following technologies are optional:

• EJB 3.2 and earlier entity beans and their associated EJB QL

• JAX-RPC 1.1

• JAXR 1.0

• Java EE Deployment 1.2

schema

Here is a diagram to show the nested requirement groups.

diagram of nested groups of various technologies required by Java SE 8, web containers, Java EE 8 Web Profile, Java EE 8 Required, and Java EE 8 Optional

The list above this chart may be more accurate; this chart has not been rechecked.

+34


source


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

Complete 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
  • General 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 additional technologies.

Defining a web profile

The following technologies are required components of a web profile:

  • Servlet 3.0
  • JavaServer Pages (JSP) 2.2
  • Expression Language (EL) 2.2
  • Debugging support for other languages ​​(JSR-45) 1.0
  • JavaServer Standard Tag Library (JSTL) 1.2
  • JavaServer Faces (JSF) 2.0
  • Common Annotations for Java 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 Java EE Platform 1.0
  • Dependency Injection for Java 1.06

There are no additional 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 that were previously only available in the full profile are now included in the web profile, such as JAX-RS.

+5


source







All Articles