Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Now you need to define those virtual hosts in Geronimo's config.xml so it can recognize them. This section provides two different virtual hosts definitions, that is creating two new HostGBean (TomcatVirtualHost1 and TomcatVirtualHost2) in the Geronimo configuration, in other words we will be defining two different virtual hosts, one of those will have multiple host names aliases. The goal of this example is to have standard predeployed applications listening by default on all the available host names. Then to have an application listening on a single virtual host ( this will be virtualhost1.com ) and another application listening on a different virtual host ( this will be virtualhost2.com ) with two additional aliases ( this will be virtualhost3.com and virtualhost4.com ).

Open the config.xml file located in the <geronimo_home>/var directory and look for the following line <module name="geronimo/tomcat/1.1/car">. This is the beginning of the Tomcat configuration module, all the additional virtual host configuration will be done immediatly after this line.

To define the first HostGBean TomcatVirtualHost_1 add the following lines right after <module name="geronimo/tomcat/1.1/car">.

Code Block
xml
xml
borderStylesolid
titleExcerpt from config.xml

...
<gbean gbeanInfo="org.apache.geronimo.tomcat.HostGBean" name="geronimo/tomcat/1.1/car?ServiceModule=geronimo/tomcat/1.1/car,j2eeType=Host,name=TomcatVirtualHost_1">
<attribute name="className">org.apache.catalina.core.StandardHost</attribute>
<attribute name="initParams">name=virtualhost1.com
       appBase=
       workDir=work</attribute>
</gbean>
...

To add the second HostGBean TomcatVirtualHost_2 add the following lines right after the first HostGBean. These two HostGBeans have been split so it is easier to identify them. The main difference between these two is the <attribute name="aliases">..,..</attribute> line to define the aliases.

Code Block
xml
xml
borderStylesolid
titleExcerpt from config.xml

...
<gbean gbeanInfo="org.apache.geronimo.tomcat.HostGBean" name="geronimo/tomcat/1.1/car?ServiceModule=geronimo/tomcat/1.1/car,j2eeType=Host,name=TomcatVirtualHost_2">
<attribute name="className">org.apache.catalina.core.StandardHost</attribute>
<attribute name="initParams">name=virtualhost2.com
       appBase=
       workDir=work</attribute>
       <attribute name="aliases">virtualhost3.com,virtualhost4.com</attribute>
</gbean>
...

At this point you have successfully configured two different virtual hosts in Geronimo. Make sure you save the changes to the config.xml file and start Geronimo.

For additional reference, this is the entire config.xml with the two HostGBean already defined.

Code Block
xml
xml
borderStylesolid
titleconfig.xml

<?xml version="1.0" encoding="UTF-8"?>
<!-- ======================================================== -->
<!-- Warning - This XML file is re-generated by Geronimo when -->
<!-- changes are made to Geronimo's configuration, therefore  -->
<!-- any comments added to this file will be lost.            -->
<!-- Do not edit this file while Geronimo is running.         -->
<!-- ======================================================== -->
<attributes xmlns="http://geronimo.apache.org/xml/ns/attributes-1.1">
<module name="geronimo/rmi-naming/1.1/car">
<gbean name="RMIRegistry">
<attribute name="port">1099</attribute>
</gbean>
<gbean name="NamingProperties">
<attribute name="namingProviderUrl">rmi://0.0.0.0:1099</attribute>
</gbean>
<gbean name="DownloadedPluginRepos">
<attribute name="repositoryList">http://people.apache.org/~ammulder/plugin-repository-list-1.1.txt</attribute>
<attribute name="userRepositories">[]</attribute>
</gbean>
</module>
<module name="geronimo/j2ee-server/1.1/car"/>
<module name="geronimo/j2ee-security/1.1/car">
<gbean name="JaasLoginServiceRemotingServer">
<attribute name="host">0.0.0.0</attribute>
<attribute name="port">4242</attribute>
</gbean>
<gbean name="JMXService">
<attribute name="protocol">rmi</attribute>
<attribute name="host">0.0.0.0</attribute>
<attribute name="port">9999</attribute>
<attribute name="urlPath">/jndi/rmi://0.0.0.0:1099/JMXConnector</attribute>
</gbean>
</module>
<module name="geronimo/axis/1.1/car"/>
<module name="geronimo/openejb/1.1/car">
<gbean name="EJBNetworkService">
<attribute name="host">0.0.0.0</attribute>
<attribute name="port">4201</attribute>
</gbean>
</module>
<module load="false" name="geronimo/j2ee-corba/1.1/car">
<gbean name="NameServer">
<attribute name="dbDir">var/cosnaming.db</attribute>
<attribute name="port">1050</attribute>
</gbean>
<gbean name="Server">
<attribute name="args">-ORBInitRef, NameService=corbaloc::localhost:1050/NameService</attribute>
</gbean>
<gbean name="UnprotectedServer">
<attribute name="args">-ORBInitRef, NameService=corbaloc::localhost:1050/NameService</attribute>
</gbean>
</module>
<module name="geronimo/system-database/1.1/car">
<gbean name="DerbyNetwork">
<attribute name="host">0.0.0.0</attribute>
<attribute name="port">1527</attribute>
</gbean>
</module>
<module name="geronimo/activemq-broker/1.1/car">
<gbean name="ActiveMQ.tcp.default">
<attribute name="host">0.0.0.0</attribute>
<attribute name="port">61616</attribute>
</gbean>
</module>
<module name="geronimo/activemq/1.1/car"/>
<module name="geronimo/tomcat/1.1/car">
<!-- =========================================== -->
<!-- First HostGBean TomcatVirtualHost_1 defined -->
<!-- =========================================== -->
<gbean gbeanInfo="org.apache.geronimo.tomcat.HostGBean" name="geronimo/tomcat/1.1/car?ServiceModule=geronimo/tomcat/1.1/car,j2eeType=Host,name=TomcatVirtualHost_1">
<attribute name="className">org.apache.catalina.core.StandardHost</attribute>
<attribute name="initParams">name=virtualhost1.com
       appBase=
       workDir=work</attribute>
</gbean>
<!-- ============================================ -->
<!-- Second HostGBean TomcatVirtualHost_1 defined -->
<!-- ============================================ -->
<gbean gbeanInfo="org.apache.geronimo.tomcat.HostGBean" name="geronimo/tomcat/1.1/car?ServiceModule=geronimo/tomcat/1.1/car,j2eeType=Host,name=TomcatVirtualHost1TomcatVirtualHost_2">
<attribute name="className">org.apache.catalina.core.StandardHost</attribute>
<attribute name="initParams">name=host1virtualhost2.com
       appBase=
       workDir=work</attribute>
       <attribute name="aliases">virtualhost3.com,virtualhost4.com</attribute>
</gbean>
<!-- ============================================ -->
<gbean name="TomcatResources"/>
<gbean name="TomcatWebConnector">
<attribute name="host">0.0.0.0</attribute>
<attribute name="port">8080</attribute>
<attribute name="redirectPort">8443</attribute>
</gbean>
<gbean name="TomcatAJPConnector">
<attribute name="host">0.0.0.0</attribute>
<attribute name="port">8009</attribute>
<attribute name="redirectPort">8443</attribute>
</gbean>
<gbean name="TomcatWebSSLConnector">
<attribute name="host">0.0.0.0</attribute>
<attribute name="port">8443</attribute>
</gbean>
<gbean name="geronimo/tomcat/1.1/car?ServiceModule=geronimo/tomcat/1.1/car,j2eeType=GBean,name=TomcatWebContainer">
<attribute name="catalinaHome">var/catalina</attribute>
</gbean>
</module>
<module name="geronimo/geronimo-gbean-deployer/1.1/car"/>
<module name="geronimo/j2ee-deployer/1.1/car">
<gbean name="WebBuilder">
<attribute name="defaultNamespace">http://geronimo.apache.org/xml/ns/j2ee/web/tomcat-1.1</attribute>
</gbean>
</module>
<module name="geronimo/openejb-deployer/1.1/car">
<gbean name="EJBBuilder">
<attribute name="listener">?name=TomcatWebContainer</attribute>
</gbean>
</module>
<module name="geronimo/client-deployer/1.1/car"/>
<module name="geronimo/axis-deployer/1.1/car"/>
<module load="false" name="geronimo/javamail/1.1/car">
<gbean name="SMTPTransport">
<attribute name="host">localhost</attribute>
<attribute name="port">25</attribute>
</gbean>
</module>
<module name="geronimo/sharedlib/1.1/car">
<gbean name="SharedLib">
<attribute name="classesDirs">var/shared/classes</attribute>
<attribute name="libDirs">var/shared/lib</attribute>
</gbean>
</module>
<module name="geronimo/tomcat-deployer/1.1/car"/>
<module name="geronimo/welcome-tomcat/1.1/car"/>
<module name="geronimo/webconsole-tomcat/1.1/car"/>
<module load="false" name="geronimo/uddi-tomcat/1.1/car"/>
<module name="geronimo/remote-deploy-tomcat/1.1/car"/>
<module name="geronimo/hot-deployer/1.1/car"/>
<module load="false" name="sample.applications/HelloWorldApp/1.1/war"/>
</attributes>

Declare the virtual host in the deployment plan

Code Block
xml
xml
borderStylesolid
titlegeronimo-web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://geronimo.apache.org/xml/ns/j2ee/web-1.1">
	    <environment>
		<moduleId>
			        <moduleId>
            <groupId>sample.applications</groupId>
			<artifactId>HelloWorldApp</artifactId>
			            <artifactId>HelloWorldApp_1</artifactId>
            <version>1.1</version>
		        </moduleId>		
	    </environment>
   	 <context-root>/hello</context-root>
	<host>host1    <host>virtualhost1.com</host>
</web-app>

Deploy the application