Jetty, Tomcat, Nginx, Geronimo, Glassfish: I'm confused

TomcatGlassfishNginxJettyApplication Server

Tomcat Problem Overview


As someone new to the Java EE ecosystem, I'm confused with these products which share a tremendous amount of keywords. And half of them come from Apache software foundation.

Can someone address me with a brief distinctive explanation for each of them?

Tomcat Solutions


Solution 1 - Tomcat

Jetty and Tomcat are web-containers, while Geronimo, Glassfish and JBoss support the whole J2EE stack (more or less). And, tataaa, they use/include Tomcat or Jetty for web-containers. The most important part of a fullblown J2EE server besides the web-container used to be the EJB-container allowing for deployment of EJBs, having them run in a transactional context etc. Today, J2EE is actually called Java EE. Entity EJBs (JPA) can run outside the EJB-container, say in Tomcat, but then outside the transaction handling that an EJB-container would provide.

Solution 2 - Tomcat

Tomcat and Jetty are web servers can manage servlets, but not Java EE.

Glassfish and JBOSS can manage Java EE fully.

And Nginx is a HTTP server and a reverse proxy. You can for example load balance multiple deployed Glassfish instances behind an nginx server.

Nginx is also used for security reasons, so you can hide your application server behind it.

Solution 3 - Tomcat

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionparsaView Question on Stackoverflow
Solution 1 - TomcatJon Martin SolaasView Answer on Stackoverflow
Solution 2 - TomcatH6.View Answer on Stackoverflow
Solution 3 - TomcatNaviView Answer on Stackoverflow