Jump to: navigation, search

Difference between revisions of "Jetty/Reference/webdefault.xml"

m
m
Line 1: Line 1:
 
{{Jetty Reference
 
{{Jetty Reference
| introduction = <tt>webdefault.xml</tt> is a file that Jetty applies to a web application ''before'' the application's own <tt>WEB-INF/web.xml</tt>. It saves web applications from having to define a lot of house-keeping and container-specific elements in their own web.xml files, and uses the [[Jetty/Reference/web.xml syntax|web.xml syntax]]. For example, you can use it to set up mime-type mappings and JSP servlet-mappings. Generally, it is convenient for all webapps in a Jetty instance to share the same <tt>webdefault.xml</tt> file. However, it is certainly possible to provide differentiated <tt>webdefault.xml</tt> files for individual web applications.
+
| introduction = <tt>webdefault.xml</tt> is a file that saves web applications from having to define a lot of house-keeping and container-specific elements in their own web.xml files. For example, you can use it to set up mime-type mappings and JSP servlet-mappings. Jetty applies <tt>webdefault.xml</tt> to a web application ''before'' the application's own <tt>WEB-INF/web.xml</tt>, which means that it cannot override values inside the webapp's web.xml. It uses the [[Jetty/Reference/web.xml syntax|web.xml syntax]]. Generally, it is convenient for all webapps in a Jetty instance to share the same <tt>webdefault.xml</tt> file. However, it is certainly possible to provide differentiated <tt>webdefault.xml</tt> files for individual web applications.
  
 
The <tt>webdefault.xml</tt> file is located in <tt>$(jetty.home)/etc/webdefault.xml</tt>.
 
The <tt>webdefault.xml</tt> file is located in <tt>$(jetty.home)/etc/webdefault.xml</tt>.

Revision as of 14:01, 19 August 2010



Introduction

webdefault.xml is a file that saves web applications from having to define a lot of house-keeping and container-specific elements in their own web.xml files. For example, you can use it to set up mime-type mappings and JSP servlet-mappings. Jetty applies webdefault.xml to a web application before the application's own WEB-INF/web.xml, which means that it cannot override values inside the webapp's web.xml. It uses the web.xml syntax. Generally, it is convenient for all webapps in a Jetty instance to share the same webdefault.xml file. However, it is certainly possible to provide differentiated webdefault.xml files for individual web applications.

The webdefault.xml file is located in $(jetty.home)/etc/webdefault.xml.

Using webdefault.xml

You can specify a custom configuration file to use for specific webapps, or for all webapps. If you do not specify an alternate defaults descriptor, webdefault.xml is automatically used.

Creating a Custom webdefault.xml for One WebApp

You can specify a custom webdefault.xml for an individual web application in that webapp's jetty-web.xml.

<Configure class="org.eclipse.jetty.webapp.WebAppContext">
  ...
  <!-- Set up the absolute path to the custom webdefault.xml -->
  <Set name="defaultsDescriptor">/my/path/to/webdefault.xml</Set>
  ...
</Configure>

The equivalent in code is:

import org.eclipse.jetty.webapp.WebAppContext;
 
    ...
 
    WebAppContext wac = new WebAppContext();
    ...
    //Set up the absolute path to the custom webdefault.xml.
    wac.setDefaultsDescriptor("/my/path/to/webdefault.xml");
    ...

Alternatively, you can use a classloader to find the resource representing your custom webdefault.xml.

Custom webdefault.xml for Multiple WebApps

If you want to apply the same custom webdefault.xml to a number of webapps, provide the path to the file in jetty.xml either to the hot deployer (Context Deployer) or the static deployer (WebAppDeployer). For example:

<Configure class="org.eclipse.jetty.webapp.WebAppContext">
    ...
    <New class="org.eclipse.jetty.deploy.WebAppDeployer">
        ...
        <Set name="defaultsDescriptor">/my/path/to/webdefault.xml</Set>
    </New>
    ...
</Configure>

Jetty Maven Plugin

Similarly, for the Jetty Maven Plugin, you provide a customized webdefault.xml file for your webapp as follows:

<project>
    ...
    <plugins>
        <plugin>
            ...
            <artifactId>jetty-maven-plugin</artifactId>
            <configuration>
                <webAppConfig>
                  ...
                  <defaultsDescriptor>/my/path/to/webdefault.xml</defaultsDescriptor>
                </webAppConfig>
            </configuration>
        </plugin>
        ...
    </plugins>
    ...
</project>

Additional Resources