In the Configuring Virtual Hosts in Geronimo-Tomcat section we described how to define a Virtual Host in the Geronimo's config.xml
so applications could be deployed to specific hosts ( Virtual Hosts) with a minimal configuration on the application deployment plans side. The need to define Virtual Hosts at the server level ( config.xml ) only applies to Geronimo with Tomcat distributions.
For the Jetty distribution of Apache Geronimo this configuration is dramatically simpler. You just need to define the <virtual-host>
tag in the application's deployment plan and make sure that host name ( virtual host ) can be resolved by an external client. There is virtually no additional configuration needed on the Geronimo server side.
In this example we continue to use the HelloWorld Web sample application covered in the Quick start - Apache Geronimo for the impatient section. Here is a summary of steps
- Create a HelloWorld directory somewhere in the file system, from now on we will reference this location as <HelloWorld_home>.
- Create a HelloWorld.jsp file in the <HelloWorld_home> directory and paste the following content.
- Create a WEB-INF directory under <HelloWorld_home>.
- Create a
web.xml
file in the <HelloWorld_home>\WEB-INF directory and paste the following content. - Create a
geronimo-web.xml
file in the <HelloWorld_home>\WEB-INF directory and paste the following content.
If you compare this deployment plan with the one described in the Quick start - Apache Geronimo for the impatient section you will note that only one line has been added, that is <virtual-host>virtualhost1.com</virtual-host>. This is all you need to define a virtual host in Geronimo with Jetty.
To deploy this application you can use the --inPlace option from the deployer tool so you wont need to package the application nor copy it anywhere else. Just run the following command:
<geronimo_home>\bin\deploy deploy --inPlace <HelloWorld_home>
D:\geronimo-1.1.1-Jetty\bin>deploy deploy --inPlace \VH-sample-Jetty
Using GERONIMO_BASE: D:\geronimo-1.1.1-Jetty
Using GERONIMO_HOME: D:\geronimo-1.1.1-Jetty
Using GERONIMO_TMPDIR: D:\geronimo-1.1.1-Jetty\var\temp
Using JRE_HOME: C:\Java\jdk1.5.0_06\
Deployed samples.applications/HelloWorldApp/1.1.1/war @
http://localhost:8080/hello
Note that even when the successful deployment message on screen shows that the application has been deployed to the *http://XYZ:8080/hello* host, the application will only be accessible via the virtual host previously defined in the <virtual-host> tag on the geronimo-web.xml deployment plan.