top
In the Configuring Virtual Host in Tomcat section we describe how to define a Virtual Host in the Geronimo's config.xml
so applications can 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.
INLINE
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 the 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
app_home
directory somewhere in the file system, from now on we will reference this location as<app_home>
. - Create a
HelloWorld.jsp
file in the<app_home>
directory and paste the following content. XMLHelloWorld.jsp<html> <head> <jsp:useBean id="datetime" class="java.util.Date"/> <title>Basic HelloWorld JSP</title> </head> <body bgcolor="#909DB8"> <h1><font face="tahoma" color="white">Hello world from GERONIMO!</font></h1> <font face="tahoma" color="white">on ${datetime}</font> </body> </html> - Create a
WEB-INF
directory under<app_home>
. - Create a
web.xml
file in the<app_home>\WEB-INF
directory and paste the following content. XMLweb.xml<?xml version="1.0" encoding="UTF-8"?> <web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"> <welcome-file-list> <welcome-file>HelloWorld.jsp</welcome-file> </welcome-file-list> </web-app> - Create a
geronimo-web.xml
file in the<app_home>\WEB-INF
directory and paste the following content. XMLgeronimo-web.xml<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns="http://geronimo.apache.org/xml/ns/j2ee/web-1.2"> <environment> <moduleId> <groupId>sample.applications</groupId> <artifactId>HelloWorldApp</artifactId> <version>2.1</version> <type>war</type> </moduleId> </environment> <context-root>/hello</context-root> <!-- Add this line to define a new Virtual Host in Geronimo - Jetty --> <virtual-host>virtualhost1.com</virtual-host> </web-app>
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 --user system --password manager deploy --inPlace <app_home>
#000000solid
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.