I realize I’m super late to the party here, but my company is about to jump into java/servlets/tomcat hard, and it frightens me.
Its not that I have any gripe with the platform, in fact I’m rather pleased with how well our CMS vendor in particular has architected their setup, its just that… well… *everything* has a learning curve, and while java’s may not be particularly steep it goes on forever and ever and ever. When I look at the experience base we’ve built in the department over the last 5 years with apache it dwarfs what we’ll be able to put into tomcat for at least another two years, and that sucks most of all because I know that experience has to come at the cost of downtime, bad (rushed) decisions, and a ton of trial-and-error learn-as-you-go manhours.
We’ve got the extra convoluting factor that for the last few years since our java appserers have been very few and far between they’ve mostly been “unique snowflower” contraptions rigged together by the developers. Usually put live with nothing but a line in /etc/rc.local and an understanding that if it makes noise you killall -9 java, paste the line from rc.local into your terminal and go back to sleep (because when the hell else would it page but four in the morning). So I’m not just introducing a new environment, I’m reclaiming territory from developers, which always means looking like the bad guy. In this case they’re used to using a different JRE *and* a seperate tomcat/resin instance for each individual webapp.
On the plus side, six months from now I know I’ll kick ass at tomcat and generally understand java appservers a lot better. However most of it will have been gleaned from the horrible mistakes I’ll have made that we’re stuck living with in production.