I need to choose a servlet-engine for my company.
I looked at the popular servlet-engines sites (Tomcat, JRun, IPlanet) but could not find any real difference between them.
What features are there that makes one servlet-engine better that the other? I mean except the ususal marketing stuff (better performance, better clustering etc.).
As far as i have seen the differences are:
- The marketing stuff (sometimes it DOES make a difference)
- The price ;)
- Support by vendor (if you buy a commercial product, you usually get support)
I recommend tomcat, great servlet engine, runs on apache wich is a great webserver and the best part: it`s open-source ;), but hey, that`s just imho.
of course you won't find much difference; they must all adhere and function to an API spec. for example, in servlet 2.2/jsp 1.1, the jsp:include tag is bugged and you must set flush to true. (<jsp:include page="target" flush="true" />)
a vendor can easily fix it and then advertise, 'yeah, we fixed the flush bug, use our engine', but that would mean losing compatibility with everyone else conforming to the 'buggy' standard.
choosing a servlet engine really depends on a lot of other factors. if your infrastructure has a development server, then i'd go with tomcat because it is THE STANDARD. everyone else must conform to tomcat's servlet api in order to claim that they support a certain api version. tomcat 3.x.x supports servlet 2.2/jsp 1.1 whereas tomcat 4.x.x supports servlet 2.3/jsp 1.2
when choosing an alternative, you are really looking for A LOT of factors and some research may be required... here's some common questions that you should ask yourself, or your company
1) Do we need EJBs?
JRun, for example, has 3 different versions of its product ranging from strictly a web container to a fully equipped application server
2) Are we going to be using proprietary tools?
People complain that "j2ee isn't a reality because my websphere stuff won't run on jboss" or something like that. As nice as it is for vendors to provide tools, it's your fault for adopting them =p. however, a lot of vendors provide some extremely nice tag libraries and utilities, so that may be a deciding factor
3) Is the server easy to maintain?
JRun has one of the slickest interfaces to maintain the server. iPlanet has a pretty nice interface also. I like editing my xml configuration files with vi so i don't really care. however, being able to manage the server remotely through a gui is very attractive.
4) How much money can I afford?
Even if you had a lot of money, don't buy stuff you don't need. There's a lot of funky pricing methods (i.e. per cpu, per MHz, etc.) and sometimes, products are overpriced for features you may never use. Just be wary of your spending so you know what you're getting
5) What kind of licensing can we get?
This is related to #4, but it's worth deciding on a 'engine' for its licensing scheme. For example, Orion is free for non profit organizations so I can use it in production.
6) Is the product here to stay?
Don't use a product made by a company that may go out of business tomorrow. When a company goes out of business, there will be no future upgrades and support.
7) Who else is using it?
This is a small deciding factor, but you can use it to gauge the quality and benefit of using the product...
there's a whole lot more. just be smart and do your research.
I'd recommend the following:
Orion - free for educational and non-profit orgs, really easy to update, great performance, oracle uses orion at its core
JRun - great management system, multiple versions (standard, pro, enterprise), good performance
JBoss - free, open source
Tomcat - free, open source, THE STANDARD! =p
the big boys such as bea and ibm are waay to expensive for where i work, but have many benefits as well. again, do your research and you'll be fine.
Check out the new HP Application Server, its free, J2EE compliant and very scalable. http://www.hpmiddleware.com/products/hp-as/default.htm
Also check out the review here on theserverside: