Preloader image

Main differences between versions

Apache TomEE is an open source software implementation of the Jakarta EE (formally Java EE) technologies.
Different versions of Apache TomEE are available for different versions of the specifications.
The mapping between the specifications and the respective Apache TomEE versions is:

TomEE version Based on Tomcat Java SE version Micro Profile version Jakarta EE version Full list of specifications versions and implementations choices

9.x

10.0.x

11

5.0

9.1

specifications versions implementations details

8.x

9.0.x

8

2.0

8.0

specifications versions implementations details

7.1.x

8.5.x

7 or 8

1.4

7.0

specifications versions implementations details

7.0.x

8.5.x

7 or 8

7.0

specifications versions implementations details

Jakarta EE 9.x introduces breaking changes (relocation from javax.* to jakarta.* namespace).
When in doubt choose Jakarta EE 8 and TomEE 8.x

Tomcat supports only a subset of Jakarta EE while TomEE is fully compliant (see tables below).

Synthesis of differences between flavors

Apache TomEE has four distributions, each supporting a slightly different set of technologies and aimed to give you a choice in what you want included out-of-the-box. When in doubt, choose Apache TomEE Plume.

Tomcat TomEE WebProfile TomEE MicroProfile TomEE Plus TomEE Plume

HTTP Request processing and Response:
Jakarta Servlet, Server Pages (JSP), Expression Language (EL),
Annotations, Authentication (JASPIC), WebSocket, …​

Data Persistence (ORM), Web Services and more:
Enterprise Beans (EJB), Contexts and Dependency Injection (CDI), Data Persistence (JPA), Standard Tag Library (JSTL) *, Faces (JSF), Transactions (JTA), RESTful Web Services (JAX-RS, JSON, JAXB), …​

Microservices architecture:
MicroProfile Config, Fault Tolerance, Health, Metrics, OpenAPI, OpenTracing, Type-safe Rest Client, …​

Other features:
Jakarta Authorization (JACC), Batch, Concurrency, Connectors,
Messaging (JMS), SOAP Web Services (JAX-WS, JWS, SAAJ), …​

Jakarta Faces (JSF) implementation

MyFaces

MyFaces

MyFaces

Mojarra

Jakarta Persistence (JPA) implementation(s)

OpenJPA

OpenJPA

OpenJPA

OpenJPA, EclipseLink

  • Please note that Tomcat does not ship with the jars for Standard Tag Library (JSTL) nor the security.enterprise.* packages.

Detailed list of Jakarta EE and MicroProfile specifications

Tomcat TomEE WebProfile TomEE MicroProfile TomEE Plus TomEE Plume

Jakarta Annotations

Jakarta Authentication (JASPIC)

Jakarta Debugging Support for Other Languages

Jakarta Servlet

Jakarta Server Pages (JSP)

Jakarta Expression Language (EL)

Jakarta WebSocket

Jakarta Web Profile specifications

Jakarta Activation

Jakarta Bean Validation

Jakarta Contexts and Dependency Injection (CDI)

Jakarta Dependency Injection (@Inject)

Jakarta Enterprise Beans (EJB)

Jakarta Faces (JSF)

Jakarta Interceptors

Jakarta JSON Binding (JSON-B)

Jakarta JSON Processing (JSON-P)

Jakarta Mail (JavaMail)

Jakarta Managed Beans

Jakarta Persistence (JPA)

Jakarta RESTful Web Services (JAX-RS)

Jakarta Security (Enterprise Security) *

Jakarta Standard Tag Library (JSTL) *

Jakarta Transactions (JTA)

Jakarta XML Binding (JAXB)

MicroProfile specifications

MicroProfile Config

MicroProfile Fault Tolerance

MicroProfile Health

MicroProfile JWT Authentication

MicroProfile Metrics

MicroProfile OpenAPI

MicroProfile OpenTracing

MicroProfile Rest Client

Jakarta EE specifications

Jakarta Authorization (JACC)

Jakarta Batch (JBatch)

Jakarta Concurrency

Jakarta Connectors

Jakarta Enterprise Web Services

Jakarta Messaging (JMS)

Jakarta SOAP with Attachments (SAAJ)

Jakarta Web Services Metadata (JWS)

Jakarta XML Web Services (JAX-WS)

Jakarta Faces (JSF) implementation

MyFaces

MyFaces

MyFaces

Mojarra

Jakarta Persistence (JPA) implementation(s)

OpenJPA

OpenJPA

OpenJPA

OpenJPA, EclipseLink

  • Please note that Tomcat does not ship with the jars for Standard Tag Library (JSTL) nor the security.enterprise.* packages.

Implementations of Jakarta EE and MicroProfile features in TomEE

Specifications Implementations included by TomEE

Jakarta Servlet, Server Pages (JSP), Expression Language (EL),
Jakarta Annotations, Authentication (JASPIC), WebSocket, …​

Apache Tomcat

Jakarta Standard Tag Library (JSTL)

Apache Standard Taglib Implementation

Jakarta Faces (JSF)

Apache MyFaces (shipped in all TomEE flavors except Plume)
Eclipse Mojarra (shipped in TomEE Plume)

Jakarta Contexts and Dependency Injection (CDI)

Apache OpenWebBeans

Jakarta Enterprise Beans (EJB)

Apache OpenEJB

Jakarta Transactions (JTA)

Apache Geronimo Transaction Manager

Jakarta Persistence (JPA)

Apache OpenJPA (shipped in all TomEE flavors)
EclipseLink (shipped in TomEE Plume)

Jakarta Bean Validation

Apache BVal

Web Services

Apache CXF

Jakarta JSON Binding (JSON-B),
Jakarta JSON Processing (JSON-P)

Apache Johnzon

Jakarta XML Binding (JAXB)

Eclipse Implementation of JAXB

Jakarta Mail (JavaMail)

Apache Geronimo JavaMail

MicroProfile

Apache Geronimo MicroProfile (ok only with TomEE 7.1.x and 8.x)
SmallRye MicroProfile (ok with TomEE 9.x and later)

Jakarta Batch (JBatch)

Apache BatchEE

Jakarta Messaging (JMS)

Apache ActiveMQ

In bold : Implementations that differ between flavors or between versions

Compatibility with other implementations

Specifications Implementations alternatives

Jakarta Persistence (JPA)

Hibernate ORM

Jakarta MVC

Eclipse Krazo (ok with TomEE 8.x and later)

Other containers (CDI, EJB, JTA, etc.) and frameworks

Spring

  • Please note that TomEE does not ship with the jars for Hibernate, Jersey, Krazo, Spring.