views:

106

answers:

4

I'm looking for a Java Web Container (like jetty and tomcat) or a tool in which I can create/remove server instances through a management console.

The problem is that my organization needs to create different instances of a test server for quality control testing (against different database configurations). Currently, I'm having to manually copy a Tomcat "catalina_base" template directory and make any changes needed for the test being run. It would be nice to have a unified interface where I could click a button to create a new instance (and click another to remove it).

Edit 1
Must be able to run on Windows Server 2003.

Edit 2
I'm getting a lot of answers that have to do with build, so I'm going to add some extra information about the application. The application is a standard JEE web application that is built using an ANT script. We use a container managed JNDI DataSource for connecting to the database. Our procedures, which are hold overs from 20+ years ago, have dictated that every new database change needs to be in a new schema.

So say a customer reports that our application is displaying a calculation wrong - the first thing we do is create a new database schema, then we run the create script for all of the database objects, and lastly copy the data from production for testing to that new schema. When we've fixed the bug (either application side or database side), our quality control person, needs the fixed application and the schema within the DataSource changed to that of the new "test environment". When they've completed their testing, we stage the code to be included in the next scheduled release.

The catch is, this process is multiplied by a number of developers and a number of concurrent bugs fixed and features added. Currently, there are over 20+ Tomcat instances managing different versions of the application and database objects. I'm constantly having to create new Tomcat instances and remove old ones, as features are added and quality control has completed.

+1  A: 

it sounds like what you really need is a build a deployment tool like Continuum

Jay
I've used cruise control and hudson but I'm unsure how a continuous integration server is going to help. Can you explain?
Jared Pearson
it won't give you the push button controll you want, but you can easily configure the application to build a new environment and with configuration files, point to whatever database you choose, and you can set it to automatically do this from a code repository. Sounded to me like a way to get to where you wanted to be.
Jay
A: 

You can do so with jetty.You can create your own Java Class with the specified configuration as an embedded server and run it from the prompt or through some web interface.

you can check this out http://docs.codehaus.org/display/JETTY/Embedding+Jetty

Rajat
I thought about doing a quick console app with an embedded jetty instance but wanted to see if there was something out there already.
Jared Pearson
A: 

Have you thought about a configuration management tool like Chef?

Jim Barrows
Never heard of it but I'm going to take a look. Thanks!
Jared Pearson
Oh, no windows compatibility. I'm going to edit my question to specify that it must run on windows server 2003.
Jared Pearson
A: 

It sounds like you should just update your application's build script to be able to accept different parameters for things like "use test1.properties for database settings" or "use prod2.properties", and then deploy that rebuilt application.

matt b
building the application is not the issue (and we already have a scheme for loading the same app with a different configuration). I need to run multiple independent the test environments with the different settings/databases and easily add/remove new ones.
Jared Pearson