Over the years, I have worked with many such products. The one thing most of these free products have in common is that they are all painful to set up. This is usually due to poor documentation and install scripts. In this column, I have picked one such product to gripe about: Tomcat v3.1, the official JSP/servlets reference implementation being developed by the Apache Software Foundation.
Before I continue, however, I do want to emphasize that most of these products, including Tomcat, are extremely robust and flexible. The issue is really the enormous amount of time that is required to understand and configure them.
In recent months, whenever I have visited Java.sun.com's Java servlet and JSP Webpages, I noticed the Jakarta and Tomcat logo and references to this project/product. The first question that crossed my mind was, "What is the difference between Jakarta and Tomcat?" So I decided to take the next step and clicked on the Tomcat link to the Apache site. Once I got there, things became even more confusing when I noticed the use of terms Jakarta, Tomcat, and Apache JServ, along with mentions of various other subprojects, such as Slide and Struts. I had to drill down into the documentation before I realized that Jakarta is the name of the project and Tomcat is the actual product.
I've had some experience with the Apache Web server and know that it uses a pluggable module architecture, with modules such
as mod_cgi, mod_jserv (for Java servlets), and so on. Therefore, my initial thought was that Tomcat was a module that plugged into the Apache Web
server. But after downloading and installing Apache and doing some in-depth reading, I realized that Tomcat is a pure Java-based
product that can operate standing alone. (Now it all makes sense!) As nice as the Apache Web server is, I decided to uninstall
it, mainly because I didn't need it. Of course, clearer instructions or distinction between the various Java-related products
on Apache's Website would have prevented this waste of time.
Anyway, I continued to set up Tomcat.
Getting the server up and running was fairly easy because Tomcat is a pure Java product, and the .bat files in the typical bin/ directory are well written. The tough part was configuring the server using the XML- and Java Properties-based configuration
files. (Yes, Tomcat uses both types.) Again, the documentation didn't help much, because what was available was also quite
scattered -- the documentation runs from Webpages and CVS repository links on Apache's Website to subtopics at jGuru.com and
the bare-bones guidelines provided with the product. However, after a few hours of struggling with Tomcat and configurating
its files, I managed to get it running like a charm.