top
The Configuring Virtual Host in Tomcat topic introduces how to define a Virtual Host in the Geronimo's config.xml
file so that applications can be deployed to specific hosts ( Virtual Hosts) with a minimal configuration on the application deployment plans side. However, 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, configuring Virtual Host is dramatically simpler.
You just need to define the <virtual-host> tag in the application's deployment plan and make sure that the host name ( virtual host ) can be resolved by the client. There is virtually no additional configuration needed on the Geronimo server side.In this topic, the HelloWorld Web sample application, covered in the Quick start - Apache Geronimo for the impatient section, is used as an example. You can use the following steps to create the HelloWorld application and define a virtual host in Geronimo with Jetty:
- 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 to the file. HelloWorld.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 to the file. web.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 to the file. geronimo-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 notice 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 that you do not need to package the application nor copy it anywhere else. Run the following command:
The following information will be displayed in your command window:
solidNote 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.