Several reasons, most of which may or may not apply to a specific need.
1) Support. Many enterprises like to have a support contract with the seller who developed the server. With open source, you are pretty much "on your own."
2) Full support for Java EE / EJB. Although I do not find this particularly useful myself, these features are widely used in commercial applications. If you need them, there is no alternative. If they donβt need you, itβs a waste.
3) Good administrative consoles. Tomcat has an admin console that allows you to add and remove applications. As far as I know, this applies to the extent possible. In WebSphere, this (although not very optimized), but you can also change the connection pool sizes, data sources, stream pool sizes, change the logging configuration (very high granularity), and activate memory and JVM profiling. Basically, without restarting the application server. Clustering is supposedly relatively easy to set up. Tomcat also lacks the ability to install the .EAR file, and if you have several related applications to install, it becomes a real pain to manage them.
You can do (at least) most of (3) in tomcat, but not through the admin GUI. Some people like to have a user-friendly graphical interface.
Ian mclaird
source share