Jetty/Reference/webdefault.xml
Contents
Introduction
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, Jetty automatically uses webdefault.xml .
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 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 classloader 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 either to the hot deployer ( Context Provider ) or the static deployer ( WebAppProvider ). 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>
Using the 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
- web.xml Reference –reference information for web.xml files
- override-web.xml –a web.xml-formatted file, applied after the webapp's web.xml
- jetty.xml Reference –more information about jetty.xml