blob: 2432bd56785884b68d8aadfe32b16d535cf95675 [file] [log] [blame]
<html><head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Jetty override-web.xml</title><link rel="stylesheet" type="text/css" href="css/docbook.css"><meta name="generator" content="DocBook XSL Stylesheets V1.79.1"><meta name="keywords" content="jetty, servlet, servlet-api, cometd, http, websocket, eclipse, maven, java, server, software"><link rel="home" href="index.html" title="Jetty"><link rel="up" href="reference-section.html" title="Chapter&nbsp;32.&nbsp;Jetty XML Reference"><link rel="prev" href="webdefault-xml.html" title="webdefault.xml"><link rel="next" href="troubleshooting.html" title="Chapter&nbsp;33.&nbsp;Troubleshooting"><link xmlns:jfetch="java:org.eclipse.jetty.xslt.tools.JavaSourceFetchExtension" xmlns:fetch="java:org.eclipse.jetty.xslt.tools.SourceFetchExtension" xmlns:d="http://docbook.org/ns/docbook" xmlns:l="http://docbook.sourceforge.net/xmlns/l10n/1.0" xmlns:xslthl="http://xslthl.sf.net" xmlns:gcse="http://www.google.com" xmlns:date="http://exslt.org/dates-and-times" rel="shortcut icon" href="images/favicon.ico"><link rel="stylesheet" href="css/highlighter/foundation.css"><script src="js/highlight.pack.js"></script><script>
hljs.initHighlightingOnLoad();
</script><link type="text/css" rel="stylesheet" href="css/font-awesome/font-awesome.min.css"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><table xmlns:jfetch="java:org.eclipse.jetty.xslt.tools.JavaSourceFetchExtension" xmlns:fetch="java:org.eclipse.jetty.xslt.tools.SourceFetchExtension" xmlns:d="http://docbook.org/ns/docbook" xmlns:l="http://docbook.sourceforge.net/xmlns/l10n/1.0" xmlns:xslthl="http://xslthl.sf.net" xmlns:gcse="http://www.google.com" xmlns:date="http://exslt.org/dates-and-times"><tr><td style="width: 25%"><a href="http://www.eclipse.org/jetty"><img src="images/jetty-header-logo.png" alt="Jetty Logo"></a><br><span style="font-size: small">
Version: 9.3.28.v20191105</span></td><td style="width: 50%"></td></tr></table><div xmlns:jfetch="java:org.eclipse.jetty.xslt.tools.JavaSourceFetchExtension" xmlns:fetch="java:org.eclipse.jetty.xslt.tools.SourceFetchExtension" xmlns:d="http://docbook.org/ns/docbook" xmlns:l="http://docbook.sourceforge.net/xmlns/l10n/1.0" xmlns:xslthl="http://xslthl.sf.net" xmlns:gcse="http://www.google.com" xmlns:date="http://exslt.org/dates-and-times" class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Jetty <code class="literal">override-web.xml</code></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="webdefault-xml.html"><i class="fa fa-chevron-left" aria-hidden="true"></i> Previous</a>&nbsp;</td><th width="60%" align="center">Chapter&nbsp;32.&nbsp;Jetty XML Reference<br><a accesskey="p" href="index.html"><i class="fa fa-home" aria-hidden="true"></i> Home</a></th><td width="20%" align="right">&nbsp;<a accesskey="n" href="troubleshooting.html">Next <i class="fa fa-chevron-right" aria-hidden="true"></i></a></td></tr></table><hr></div><div xmlns:jfetch="java:org.eclipse.jetty.xslt.tools.JavaSourceFetchExtension" xmlns:fetch="java:org.eclipse.jetty.xslt.tools.SourceFetchExtension" xmlns:d="http://docbook.org/ns/docbook" xmlns:l="http://docbook.sourceforge.net/xmlns/l10n/1.0" xmlns:xslthl="http://xslthl.sf.net" xmlns:gcse="http://www.google.com" xmlns:date="http://exslt.org/dates-and-times" class="jetty-callout"><h5 class="callout"><a href="http://www.webtide.com/">Contact the core Jetty developers at
<span class="website">www.webtide.com</span></a></h5><p>
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
</p></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="override-web-xml"></a>Jetty <code class="literal">override-web.xml</code></h2></div></div></div><div class="toc"><dl class="toc"><dt><span class="section"><a href="override-web-xml.html#using-override-web-xml">Using override-web.xml</a></span></dt><dt><span class="section"><a href="override-web-xml.html#override-using-jetty-maven-plugin">Using the Jetty Maven Plugin</a></span></dt><dt><span class="section"><a href="override-web-xml.html#override-web-xml-additional-resources">Additional Resources</a></span></dt></dl></div><p>To deploy a web application or WAR into different environments, most likely you will need to customize the webapp for compatibility with each environment.
The challenge is to do so without changing the webapp itself. You can use a <code class="literal">jetty.xml</code> file for some of this work since it is not part of the webapp.
But there are some changes that <code class="literal">jetty.xml</code> cannot accomplish, for example, modifications to servlet init-params and context init-params.
Using <code class="literal">webdefault.xml</code> is not an option because Jetty applies <code class="literal">webdefault.xml</code> to a web application <span class="emphasis"><em>before</em></span> the application&#8217;s own <code class="literal">WEB-INF/web.xml</code>, which means that it cannot override values inside the webapp&#8217;s ` web.xml`.</p><p>The solution is <code class="literal">override-web.xml</code>.
It is a <code class="literal">web.xml</code> file that Jetty applies to a web application <span class="emphasis"><em>after</em></span> the application&#8217;s own <code class="literal">WEB-INF/web.xml</code>, which means that it can override values or add new elements.
This is defined on a per-webapp basis, using the <a class="xref" href="reference-section.html#jetty-xml-syntax" title="Jetty XML Syntax">Jetty XML Syntax</a>.</p><div class="section"><div class="titlepage"><div><div><h3 class="title"><a name="using-override-web-xml"></a>Using override-web.xml</h3></div></div></div><p>You can specify the <code class="literal">override-web.xml</code> to use for an individual web application in a deployable xml file located in Jetty webapps folder .
For example, if you had a webapp named MyApp, you would place a deployable xml file named <code class="literal">myapp.xml</code> in <code class="literal">${jetty.base}/webapps</code> which includes an <code class="literal">overrideDescriptor</code> entry for the <code class="literal">override-web.xml</code> file.</p><pre xmlns:jfetch="java:org.eclipse.jetty.xslt.tools.JavaSourceFetchExtension" xmlns:fetch="java:org.eclipse.jetty.xslt.tools.SourceFetchExtension" xmlns:d="http://docbook.org/ns/docbook" xmlns:l="http://docbook.sourceforge.net/xmlns/l10n/1.0" xmlns:xslthl="http://xslthl.sf.net" xmlns:gcse="http://www.google.com" xmlns:date="http://exslt.org/dates-and-times"><code>&lt;Configure class="org.eclipse.jetty.webapp.WebAppContext"&gt;
...
&lt;!-- Set up the path to the custom override descriptor,
relative to your $(jetty.home) directory or to the current directory --&gt;
&lt;Set name="overrideDescriptor"&gt;&lt;SystemProperty name="jetty.home" default="."/&gt;/my/path/to/override-web.xml&lt;/Set&gt;
...
&lt;/Configure&gt;</code></pre><p>The equivalent in code is:</p><pre xmlns:jfetch="java:org.eclipse.jetty.xslt.tools.JavaSourceFetchExtension" xmlns:fetch="java:org.eclipse.jetty.xslt.tools.SourceFetchExtension" xmlns:d="http://docbook.org/ns/docbook" xmlns:l="http://docbook.sourceforge.net/xmlns/l10n/1.0" xmlns:xslthl="http://xslthl.sf.net" xmlns:gcse="http://www.google.com" xmlns:date="http://exslt.org/dates-and-times"><code>import org.eclipse.jetty.webapp.WebAppContext;
...
WebAppContext wac = new WebAppContext();
...
//Set the path to the override descriptor, based on your $(jetty.home) directory
wac.setOverrideDescriptor(System.getProperty("jetty.home")+"/my/path/to/override-web.xml");
...</code></pre><p>Alternatively, you can use the classloader (<a class="xref" href="jetty-classloading.html" title="Jetty Classloading">Jetty Classloading</a>) to get the path to the override descriptor as a resource.</p></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a name="override-using-jetty-maven-plugin"></a>Using the Jetty Maven Plugin</h3></div></div></div><p>Use the <code class="literal">&lt;overrideDescriptor&gt;</code> tag as follows:</p><pre xmlns:jfetch="java:org.eclipse.jetty.xslt.tools.JavaSourceFetchExtension" xmlns:fetch="java:org.eclipse.jetty.xslt.tools.SourceFetchExtension" xmlns:d="http://docbook.org/ns/docbook" xmlns:l="http://docbook.sourceforge.net/xmlns/l10n/1.0" xmlns:xslthl="http://xslthl.sf.net" xmlns:gcse="http://www.google.com" xmlns:date="http://exslt.org/dates-and-times"><code>&lt;project&gt;
...
&lt;plugins&gt;
&lt;plugin&gt;
...
&lt;artifactId&gt;jetty-maven-plugin&lt;/artifactId&gt;
&lt;configuration&gt;
&lt;webAppConfig&gt;
...
&lt;overrideDescriptor&gt;src/main/resources/override-web.xml&lt;/overrideDescriptor&gt;
&lt;/webAppConfig&gt;
&lt;/configuration&gt;
&lt;/plugin&gt;
...
&lt;/plugins&gt;
...
&lt;/project&gt;</code></pre></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a name="override-web-xml-additional-resources"></a>Additional Resources</h3></div></div></div><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><a class="xref" href="webdefault-xml.html" title="webdefault.xml"><code class="literal">webdefault.xml</code></a> &#8211;Information for this <code class="literal">web.xml</code> -formatted file, applied before the webapp&#8217;s <code class="literal">web.xml</code> webapp.</li><li class="listitem"><a class="xref" href="jetty-xml-config.html" title="jetty.xml"><code class="literal">jetty.xml</code></a> &#8211;Reference for <code class="literal">jetty.xml</code> files</li></ul></div></div></div><script type="text/javascript">
SyntaxHighlighter.all()
</script><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="webdefault-xml.html"><i class="fa fa-chevron-left" aria-hidden="true"></i> Previous</a>&nbsp;</td><td width="20%" align="center"><a accesskey="u" href="reference-section.html"><i class="fa fa-chevron-up" aria-hidden="true"></i> Top</a></td><td width="40%" align="right">&nbsp;<a accesskey="n" href="troubleshooting.html">Next <i class="fa fa-chevron-right" aria-hidden="true"></i></a></td></tr><tr><td width="40%" align="left" valign="top"><code class="literal">webdefault.xml</code>&nbsp;</td><td width="20%" align="center"><a accesskey="h" href="index.html"><i class="fa fa-home" aria-hidden="true"></i> Home</a></td><td width="40%" align="right" valign="top">&nbsp;Chapter&nbsp;33.&nbsp;Troubleshooting</td></tr></table></div><p xmlns:jfetch="java:org.eclipse.jetty.xslt.tools.JavaSourceFetchExtension" xmlns:fetch="java:org.eclipse.jetty.xslt.tools.SourceFetchExtension" xmlns:d="http://docbook.org/ns/docbook" xmlns:l="http://docbook.sourceforge.net/xmlns/l10n/1.0" xmlns:xslthl="http://xslthl.sf.net" xmlns:gcse="http://www.google.com" xmlns:date="http://exslt.org/dates-and-times"><div class="jetty-callout">
See an error or something missing?
<span class="callout"><a href="http://github.com/eclipse/jetty.project">Contribute to this documentation at
<span class="website"><i class="fa fa-github" aria-hidden="true"></i> Github!</span></a></span><span style="float: right"><i>(Generated: 2019-11-05)</i></span></div></p></body></html>