Overall Satisfaction with Apache Tomcat
We use Tomcat as our Web Application server for small and middle size web application and expose Restful API microservices in our multiple projects. Tomcat provides a rich set of API so we could easy to integrate with our Gitlab pipeline to have full lifecycle CICD or build script to automate all deployment process.
- Tomcat support almost Web server feature we need including Connection pool, Tread pool, Https, Mutual and data Source
- Tomcat is lightweight, easy to install and configuration
- easy to customize startup and stop script to adjust memory or startup option
- provide rich API set
- intergrate with almost main IDE such as Eclipse, Intellij..
- Default log is not good enough and need to customize
- Tomcat interface is simple and have limit function
- Support for cluster is not good
- Increase product activity of team
- Speedup our development and deployment time
- Provide high performance and lightweight server
- Default support by Azure Web app
We considered between Tomcat and WebLogic and then choose Tomcat as it is much simpler and have all the features we need, also we need to integrate Tomcat with our Gitlab pipeline and Tomcat is well supported with its API set. In the future we plan to move our system to Azure Web app which provides strong support for Tomcat.
Tomcat is well suited for small and middle Servlet-based Java application, and is a great application server which does not require much effort to get started and also provide a wide range of feature so we could customize our server and could build our automation script to handle all deployment process base on Tomcat API. Tomcat does not fit if you need EJB or socket feature, and if your application is too complex or requires a cluster.
Apache Tomcat Feature Ratings
Using Apache Tomcat
Tomcat has a very rich API set which allows us to implement our automation script to trigger the deployment, configure, stop and start Tomcat from the command line. In our projects, we embedded Tomcat in our Eclipse in all of the developer's machines so they could quickly verify their code with little effort, Azure Webapp has strong support for Tomcat so we could move our application to Azure cloud very easy. One drawback is Tomcat UI quite poorly features but we almost do not use it.
Apache Tomcat Reliability
Tomcat support to customize memory used and allow us to define the Connection pool and thread pool to increase system performance and availability, Tomcat server itself consume very little memory and almost no footprint. We use Tomcat in our production environment which has up to thousands of concurrent users and it is stable and provides a quick response.
Integrating Apache Tomcat
Tomcat is very easy to integrate as it has a strong and simple API to set. We build scripts to download, install and configure the Tomcat server and deploy .war files into the newTomcat, stop and start it in our script and add it into EC2 user data and build our EC2 in autoscale group, so whenever new instances are added into the Group it has an application running inside and ready to serve the request. We also integrate Tomcat with Gitlab and Eclipse in development and UAT environment.