Setting the Context Root of a Web Application


The context root of a web application determines which URLs Tomcat will delegate to your web application. If your application's context root is myapp, then any request for /myapp or /myapp/* will be handled by your application unless a more specific context root exists. If a second web application were assigned the context root myapp/help, a request for /myapp/help/help.jsp would be handled by the second web application, not the first.

This relationship also holds when the context root is set to /, which is known as the root context. When an application is assigned to the root context, it will respond to all requests not handled by a more specific context root.

The context root for an application is determined by how the application is deployed. When a web application is deployed inside an EAR file, the context root is specified in the application.xml file of the EAR, using a context-root element inside a web module. In the following example, the context root of the web-client.war application is set to bank:

 <application xmlns="http://java.sun.com/xml/ns/j2ee" version="1.4"     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/application_1_4.xsd">     <display-name>JBossDukesBank</display-name>     <module>         <ejb>bank-ejb.jar</ejb>     </module>     <module>         <web>             <web-uri>web-client.war</web-uri>             <context-root>bank</context-root>         </web>     </module> </application> 

For web applications that are deployed outside an EAR file, the context root can be specified in two ways. First, the context root can be specified inside the WEB-INF/jboss-web.xml file. The following example shows what the jboss-web.xml file would look like for the same web-client.war file shown previously if it weren't bundled inside an EAR file:

 <jboss-web>     <context-root>bank</context-root> </jboss-web> 

Finally, if no context root specification exists, the context root will be the base name of the WAR file. For web-client.war, the context root would default to web-client. The only special case to this naming is the special name ROOT. To deploy an application under the root context, you simply name it ROOT.war. JBoss already contains a ROOT.war web application in the jbossweb-tomcat50.sar directory. So you need to remove or rename that one to create your own root application.

Naming your WAR file after the context root it is intended to handle is a very good practice. Not only does it reduce the number of configuration settings to manage, but it improves the maintainability of the application by making clear the intended function of the web application.



JBoss 4. 0(c) The Official Guide
JBoss 4.0 - The Official Guide
ISBN: B003D7JU58
EAN: N/A
Year: 2006
Pages: 137

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net