JBoss, a division of Red HatJBoss.org - Community driven.
Printer Friendly Version

Virtual Hosting and JBoss Web


For the sake of this how-to, assume you have a development host with two host names, ren and stimpy. Let's also assume one instance of JBoss Web running, so $CATALINA_HOME refers to wherever it's installed, perhaps /usr/local/tomcat.

Also, this how-to uses Unix-style path separators and commands; if you're on Windows modify accordingly.


At the simplest, edit the Engine portion of your server.xml file to look like this:

<Engine name="Catalina" defaultHost="ren">
    <Host name="ren"    appBase="webapps/ren"/>
    <Host name="stimpy" appBase="webapps/stimpy"/>

Consult the configuration documentation for other attributes of the Engine and Hostelements.

Webapps Directory

Create directories for each of the virtual hosts:

mkdir $CATALINA_HOME/webapps/ren
mkdir $CATALINA_HOME/webapps/stimpy

Configuring Your Contexts

Approach #1

Within your Context, create a META-INF directory and then place your Context definition in it in a file named context.xml. i.e. $CATALINA_HOME/webapps/ren/ROOT/META-INF/context.xml This makes deployment easier, particularly if you're distributing a WAR file.

Approach #2

Create a structure under $CATALINA_HOME/conf/Catalina corresponding to your virtual hosts, e.g.:

mkdir $CATALINA_HOME/conf/Catalina/ren
mkdir $CATALINA_HOME/conf/Catalina/stimpy

Note that the ending directory name "Catalina" represents the name attribute of the Engine element as shown above.

Now, for your default webapps, add:


If you want to use the JBoss Web manager webapp for each host, you'll also need to add it here:

cd $CATALINA_HOME/conf/Catalina
cp localhost/manager.xml ren/
cp localhost/manager.xml stimpy/

Further Information

Consult the configuration documentation for other attributes of the Context element.