tomcat-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Steven J. Owens" <>
Subject Re: Configuration Management, JSP Recompiles, War Files
Date Tue, 09 Nov 2004 07:45:54 GMT

On Tue, Nov 09, 2004 at 08:42:34AM +1100, Peter Johnson wrote:
> We run 5 Tomcat servers (still on 4.1.x so not clustered) and use
> CVS with two tags: 'stage' and 'prod'.

     I'm a little unclear on what this means - do you mean branches?  

     Or do you mean that you effectively do some sort of script to
"get the latest stage tag" vs "get the latest prod tag"?  That's
something I hadn't considered, but it sounds like it might be easier
than branches (which I haven't really messed with, but seem to be
notoriously tricky).

> When a push script is executed the server pulls the appropriate
> version from cvs and then performs an ant task to deploy the app,
> compiling any changed classes. We find that this works just fine and
> haven't really had any issues.

     Okay, so ant task to build war file and push it to the tomcat
server.  Sounds fairly standard (though still unexplored territory for
> Check that you are using <jsp:include ...> (include on execute) rather 
> than <@ include ...> (include on compile) as this *may* be causing the 
> issue.

     Yup, we're using <jsp:include>.
> Just out of curiousity why are you are deploying individual apps if they 
> are so similar? Why don't you just implement a "branding" infrastructure 
> and run a single app with multiple brandings?

     Honestly, I've considered it several times.  We're really, really
close to that point already.  All it would take would be to switch the
various logo.gif and CSS imports to use a property instead of copying
a template file.  Then I'd set up the property singleton to use a
different property file & database depending on which URL mapping the
user requested.

     The real reason I haven't is that it just doesn't buy me anything
significant to run them all off the same webapp, while it increases
(instead of decreases) the interdependency, and makes testing much
more white-knuckle.  I keep thinking, "well, it wouldn't be that
hard...", but there's no real concrete advantage to do this, except to
save a little bit of disk and memory.  And if I ever *do* have a
serious need do something custom for one instance or another, I'm

Steven J. Owens

"I'm going to make broad, sweeping generalizations and strong,
 declarative statements, because otherwise I'll be here all night and
 this document will be four times longer and much less fun to read.
 Take it all with a grain of salt." -

To unsubscribe, e-mail:
For additional commands, e-mail:

View raw message