| // ======================================================================== |
| // Copyright (c) 1995-2017 Mort Bay Consulting Pty. Ltd. |
| // ======================================================================== |
| // All rights reserved. This program and the accompanying materials |
| // are made available under the terms of the Eclipse Public License v1.0 |
| // and Apache License v2.0 which accompanies this distribution. |
| // |
| // The Eclipse Public License is available at |
| // http://www.eclipse.org/legal/epl-v10.html |
| // |
| // The Apache License v2.0 is available at |
| // http://www.opensource.org/licenses/apache2.0.php |
| // |
| // You may elect to redistribute this code under either of these licenses. |
| // ======================================================================== |
| |
| [[jetty-env-xml]] |
| === `jetty-env.xml` |
| |
| `jetty-env.xml` is an optional Jetty file that configures JNDI resources for an individual webapp. |
| The format of `jetty-env.xml` is the same as xref:jetty-xml-config[] –it is an XML mapping of the Jetty API. |
| |
| When Jetty deploys a web application, it automatically looks for a file called ` WEB-INF/jetty-env.xml` within the web application (or WAR), and sets up the webapp naming environment so that naming references in the `WEB-INF/web.xml` file can be resolved from the information provided in the `WEB-INF/jetty-env.xml` and xref:jetty-xml-config[] files. |
| You define global naming resources on the server via `jetty.xml`. |
| |
| [[jetty-env-root-element]] |
| ==== `jetty-env.xml` Root Element |
| |
| Jetty applies `jetty-env.xml` on a per-webapp basis, and configures an instance of `org.eclipse.jetty.webapp.WebAppContext.` |
| |
| [source, xml, subs="{sub-order}"] |
| ---- |
| |
| <?xml version="1.0" encoding="UTF-8"?> |
| <!DOCTYPE Configure PUBLIC "-//Mort Bay Consulting//DTD Configure//EN" "http://www.eclipse.org/jetty/configure.dtd"> |
| |
| <Configure class="org.eclipse.jetty.webapp.WebAppContext"> |
| .. |
| </Configure> |
| |
| |
| ---- |
| |
| ____ |
| [CAUTION] |
| Make sure you are applying the configuration to an instance of the proper class. `jetty-env.xml` configures an instance of WebAppContext, and not an instance of Server. |
| ____ |
| |
| [[using-jetty-env-xml]] |
| ==== Using `jetty-env.xml` |
| |
| Place the `jetty-env.xml` file in your web application's WEB-INF folder. |
| |
| [source, xml, subs="{sub-order}"] |
| ---- |
| |
| <?xml version="1.0"?> |
| <!DOCTYPE Configure PUBLIC "-//Mort Bay Consulting//DTD Configure//EN" "http://jetty.mortbay.org/configure.dtd"> |
| |
| <Configure class="org.eclipse.jetty.webapp.WebAppContext"> |
| |
| <!-- Add an EnvEntry only valid for this webapp --> |
| <New id="gargle" class="org.eclipse.jetty.plus.jndi.EnvEntry"> |
| <Arg>gargle</Arg> |
| <Arg type="java.lang.Double">100</Arg> |
| <Arg type="boolean">true</Arg> |
| </New> |
| |
| <!-- Add an override for a global EnvEntry --> |
| <New id="wiggle" class="org.eclipse.jetty.plus.jndi.EnvEntry"> |
| <Arg>wiggle</Arg> |
| <Arg type="java.lang.Double">55.0</Arg> |
| <Arg type="boolean">true</Arg> |
| </New> |
| |
| <!-- an XADataSource --> |
| <New id="mydatasource99" class="org.eclipse.jetty.plus.jndi.Resource"> |
| <Arg>jdbc/mydatasource99</Arg> |
| <Arg> |
| <New class="com.atomikos.jdbc.SimpleDataSourceBean"> |
| <Set name="xaDataSourceClassName">org.apache.derby.jdbc.EmbeddedXADataSource</Set> |
| <Set name="xaDataSourceProperties">databaseName=testdb99;createDatabase=create</Set> |
| <Set name="UniqueResourceName">mydatasource99</Set> |
| </New> |
| </Arg> |
| </New> |
| |
| </Configure> |
| |
| |
| ---- |
| |
| [[additional-jetty-env-xml-resources]] |
| ==== Additional `jetty-env.xml` Resources |
| |
| * xref:jetty-xml-syntax[] –In-depth reference for Jetty-specific configuration XML syntax. |
| * xref:jetty-xml-config[] –Configuration file for configuring the entire server. |