80

I want to deploy EJB ear in a server but I am really confused about choosing a server among tomcat, TomEE and TomEE Plus.

  1. What are the differences between Tomcat and TomEE?
  2. What are the new features in TomEE and TomEE Plus?
  3. In which case(s) does it make sense to go for TomEE and TomEE Plus?

so I need some suggestions in order to be able to make an informed decision.

2 Answers 2

102

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.

2
  • Can you help me to clear out a thing, the term of support here whether it is the application server will provide the library for example JPA with OpenJPA as it's implementation or more than, for example with Tomcat which doesn't support JPA, so we can't use Hibernate which is another implementation of JPA ? Jan 31, 2018 at 11:56
  • You can use JPA with Apache Tomcat (I am sure 100%), you need add JPA-implement dependency into your application. For example: stackoverflow.com/a/7230084/3728901
    – Vy Do
    Jan 31, 2018 at 13:15
15

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:

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.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.