Version: 9.4.5.v20170502 |

webdefault.xml
Previous | Chapter 32. Jetty XML Reference Home | Next

##### Contact the core Jetty developers at www.webtide.com

private support for your internal/customer projects ... custom extensions and distributions ... versioned snapshots for indefinite support ... scalability guidance for your apps and Ajax/Comet projects ... development services for sponsored feature development

## webdefault.xml

The `webdefault.xml` file 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 jetty.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, the $JETTY-HOME/etc/jetty-deploy.xml file will configure jetty to automatically use $JETTY_HOME/etc/`webdefault.xml`.

> ### Note

> To ensure your `webdefault.xml` files are validated, you will need to set the `validateXml` attribute to true as described here.

#### 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.xml as follows:

    <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 Jetty Classloading to find the resource representing your custom `webdefault.xml`.

#### Creating a 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 in the $JETTY_HOME/etc/jetty-deploy.xml file:

       <Set name="defaultsDescriptor"><Property name="jetty.home" default="." />/other/path/to/another/webdefault.xml</Set>

#### Using the Jetty Maven Plugin

Similarly, when using 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>
                    <webApp>
                      ...
                      <defaultsDescriptor>/my/path/to/webdefault.xml</defaultsDescriptor>
                    </webApp>
                </configuration>
            </plugin>
            ...
        </plugins>
        ...
    </project>

#### Additional Resources

- jetty-web.xml –Reference for `web.xml` files
- Jetty override-web.xml –Information for this `web.xml` -formatted file, applied after the webapp’s `web.xml` webapp.
- jetty.xml –Reference for `jetty.xml` files

Previous | Top | Next
jetty-env.xml | Home | Jetty override-web.xml

See an error or something missing? Contribute to this documentation at Github!(Generated: 2017-05-02)