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.
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.
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.
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 (Using the Context Provider) or the static deployer (Using the WebApp Provider). 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>
Similarly, when using the Jetty Maven Plugin (Configuring 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>
jetty-web.xml
–Reference for
web.xml filesoverride-web.xml –Information for this
web.xml -formatted file, applied after the webapp's web.xml webapp.jetty.xml
–Reference for
jetty.xml files