What is the difference between Tomcat and TomEE, TomEE and TomEE Plus

Solution 1:

This is functions comparison matrix between Tomcat, TomEE and TomEE+:

enter image description here (Source: http://tomee.apache.org/comparison.html)

1. Tomcat vs TomEE
Tomcat is servlet container that supports servlet and JSP technology. TomEE is more extensive than Tomcat supporting many other Java EE technologies (specificed by JSR-xxx).

2. Compare TomEE vs TomEE+

TomEE contains:
CDI - Apache OpenWebBeans
EJB - Apache OpenEJB
JPA - Apache OpenJPA
JSF - Apache MyFaces
JSP - Apache Tomcat
JSTL - Apache Tomcat
JTA - Apache Geronimo Transaction
Servlet - Apache Tomcat
Javamail - Apache Geronimo JavaMail
Bean Validation - Apache BVal

TomEE+
The TomEE Plus distribution adds the following:
JAX-RS - Apache CXF
JAX-WS - Apache CXF
JMS - Apache ActiveMQ
Connector - Apache Geronimo Connector

(Source: http://tomee.apache.org/apache-tomee.html)
What is new in Tomcat? Of cource, see Tomcat change log.
What is new in TomEE plus? see TomEE change log.

3. Choose TomEE or TomEE plus?
See functions matrix at the above, pick your functions in your application what you will use. Then choose Servlet container/ Web profile application server / Application server by yourself.

Solution 2:

Apache Tomcat is a Java servlet container which implements the following specifications:

  1. Java Servlet Specification
  2. Java ServerPages (JSP)
  3. Expression Language (EL)
  4. WebSocket

The version of Tomcat you choose will dictate the versions of the above specifications that are supported.

Apache TomEE is a Java EE Web Profile-certified stack which is built on top of an Apache Tomcat base integrated with additional related technologies. It adds implementations for the following specifications (using the Apache project shown in parentheses):

  1. CDI - Apache OpenWebBeans
  2. EJB - Apache OpenEJB
  3. JPA - Apache OpenJPA
  4. JSF - Apache MyFaces
  5. JSP - Apache Tomcat
  6. JSTL - Apache Tomcat
  7. JTA - Apache Geronimo Transaction
  8. Servlet - Apache Tomcat
  9. Javamail - Apache Geronimo JavaMail
  10. Bean Validation - Apache BVal

Apache TomEE+ adds:

  1. JAX-RS - Apache CXF
  2. JAX-WS - Apache CXF
  3. JMS - Apache ActiveMQ
  4. Connector - Apache Geronimo Connector

Note that all of this was available from some obvious places on these Apache web sites:

  • Apache TomEE
  • Apache Tomcat

If I understand correctly, the whole EAR thing has been abandoned in favor of good-old WAR files. But, if you have to deploy an EAR file, you are more than likely going to require Apache TomEE. Apache Tomcat certainly doesn't know what the heck to do with an EAR file.