top

{scrollbar}

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

  1. Create a HelloWorld directory somewhere in the file system, from now on we will reference this location as <HelloWorld_home>.
  2. Create a HelloWorld.jsp file in the <HelloWorld_home> directory and paste the following content. XMLSolidHelloWorld.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>
  3. Create a WEB-INF directory under <HelloWorld_home>.
  4. Create a web.xml file in the <HelloWorld_home>\WEB-INF directory and paste the following content. XMLSolidweb.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>
  5. Create a geronimo-web.xml file in the <HelloWorld_home>\WEB-INF directory and paste the following content. XMLSolidgeronimo-web.xml <?xml version="1.0" encoding="UTF-8"?> <web-app xmlns="http://geronimo.apache.org/xml/ns/j2ee/web-1.1"> <environment> <moduleId> <groupId>samples.applications</groupId> <artifactId>HelloWorldApp</artifactId> <version>1.1.1</version> </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 deploy --inPlace <HelloWorld_home>

#000000solid 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.

  • No labels