![]() Version: 9.4.12.v20180830 |
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
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, 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 thevalidateXml
attribute to true as described here.
The webdefault.xml
included with the Jetty Distribution contains several configuration options, such as init params and servlet mappings, and is separated into sections for easy navigation.
Some of the more common options include, but are not limited to:
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 in the $JETTY_HOME/etc/jetty-deploy.xml
file:
<Set name="defaultsDescriptor"><Property name="jetty.home" default="." />/other/path/to/another/webdefault.xml</Set>
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>
web.xml
filesweb.xml
-formatted file, applied after the webapp’s web.xml
webapp.jetty.xml
files