Jakarta EE and Java EE 8 in Liberty

Liberty supports the full Java™ Platform, Enterprise Edition (Java EE) 8, which provides a number of improvements over previous Java EE versions.

Liberty also supports the Jakarta EE Platform (Jakarta EE) 8, which is the migration of Java EE 8 from the Java Community Process to the Eclipse Foundation.

[21.0.0.12 and later]WebSphere® Application Server Liberty supports the Jakarta EE Platform (Jakarta EE) 9.1.

Benefits of Jakarta EE

Jakarta EE offers a community-driven open source model with more frequent releases than Java EE, enabling it to evolve more quickly to address the needs of modern applications.

The Jakarta EE 8 full platform and Web Profile technologies are based on Java EE 8 technologies. The Jakarta EE 8 specifications are compatible with Java EE 8 specifications.

Open Liberty For more information about Jakarta EE in Liberty, see the Open Liberty guides on Jakarta EE technologies.

[21.0.0.12 and later]Jakarta EE 9.1 full platform and web profile technologies support the Jakarta EE 9.1 specifications. Due to changes in the underlying API package names between Jakarta EE 8 and Jakarta 9.1,Liberty features that support Jakarta EE 9.1 are incremented to new version numbers and in some cases have new short names. If you are moving applications from Java EE or a previous version of Jakarta EE to Jakarta EE9.1, you might need to update feature versions or short names in your server.xml file. For more information, see Jakarta EE 9.1 feature updates on the Open Liberty website.

Benefits of Java EE 8

  • JavaScript Object Notation Binding (JSON-B) 1.0 (JSR 367) is new and builds on the JavaScript Object Notation Processing (JSON-P) specification that was introduced in Java EE 7. This new specification provides a standard way to marshal Java objects to JSON text and to unmarshal Java objects from JSON text.
  • The JSON-P specification adds support for the JSON Pointer and JSON Patch standards in JSON-P 1.1 (JSR-374).
  • The new Security API (JSR 375) defines self-contained security applications that are portable across application servers. These security applications can provide their own implementations to over-ride authentication mechanisms or identity stores.
  • The servlet API adds support for HTTP 2.0 in Servlet 4.0 (JSR 369).
  • The JAX-RS specification adds support for a reactive client, server sent events, out of the box @PATCH method support, the option to specify the executor service, and out of the box JSON-B support. These additions are available in JAX-RS 2.1 (JSR 370).
  • Bean Validation 2.0 (JSR 380) provides an annotation-based model for validating JavaBeans. You can use the specification to assert and maintain the integrity of data as it travels through an application.
  • Contexts and Dependency Injection (CDI) 2.0 (JSR 365) adds support for firing asynchronous events, ordering event observers, using configuration SPIs, using built in annotation literals, and applying interceptors on producers.
  • Deprecation of older technologies

    The following older technologies are optional for Java EE 8: For EJB 3.2 (JSR-345), EJB entity beans and EJB QL that goes with it; JAX-RPC 1.1 (JSR-101); JAXR 1.0 (JSR-93); Java EE Deployment 1.2 (JSR-88).

Java EE 8 full platform and Web Profile

The Java EE 8 specification defines the full platform Enterprise Edition. The Web Profile is a properly defined subset of the full platform.

Web Profile
The Web Profile defines a reasonably complete stack that targets "modern" web applications. This stack is a subset of the full platform standard APIs, capable of addressing the needs of most web applications.
Full platform
The full platform defines the full complement of the Java EE programming model. Besides the Web Profile features, the full platform has specifications for advanced business capabilities that an enterprise needs, such as for connectivity, enterprise beans, messaging, and application clients.

You need to consider these definitions when you install Liberty and its available features. Installation options provide the Liberty runtime (kernel) and features that support the full platform or Web Profile. You can choose to install the Liberty kernel with just the Web Profile features or install individual Java EE features to your existing Liberty kernel installation.

You also need to consider the definitions when you deploy applications to a Liberty server. For example, if your Liberty installation supports Web Profile features but your application needs a server that supports enterprise connectivity APIs, you must add full platform features to your Liberty installation or deploy the application to a Liberty installation that has full platform features.

To quickly add support for Java EE to your Liberty server, use either the webProfile-8.0 or javaee-8.0 convenience features in the feature manager of your server configuration; for example:

<featureManager>
   <feature>javaee-8.0</feature>
</featureManager>

A third convenience feature, javaeeClient-8.0, is also available to quickly configure an application client component:

<featureManager>
   <feature>javaeeClient-8.0</feature>
</featureManager>

Installing a Liberty kernel with Java EE 8 features

The quickest way to install a Liberty runtime with Java EE 8 features is to download a compressed (.zip) file from the Open Liberty download and extract the file into an empty directory. See Installing Liberty using downloaded archives.

You also can install a Liberty runtime with Java EE 8 features by using a developer tool such as WebSphere Application Server Developer Tools for Eclipse. See Installing Liberty Repository assets.

You can add Java EE 8 features to an existing installation by running the featureManager or installUtility command. See Installing Liberty Repository assets.

Resources to help you use Java EE 8 technologies