Version: 9.3.16.v20170120 |

Deploying Web Applications
Previous | Chapter 2. Using Jetty Home | Next

##### Contact the core Jetty developers at www.webtide.com

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

## Deploying Web Applications

Jetty server instances that configure the deploy module will have a web application deployer that hot deploys files found in the `webapps` directory. Standard WAR files and Jetty configuration files that are placed in the `webapps` directory are hot deployed to the server with the following conventions:

- A directory called `example/` is deployed as a standard web application if it contains a `WEB-INF/` subdirectory, otherwise it is deployed as context of static content. The context path is `/example` (that is, `http://localhost:8080/example/`) unless the base name is ROOT (case insensitive), in which case the context path is /. If the directory name ends with ".d" it is ignored (but may be used by explicit configuration).
- A file called `example.war` is deployed as a standard web application with the context path `/example` (that is, `http://localhost:8080/example/`). If the base name is `ROOT` (case insensitive), the context path is `/`. If `example.war` and `example/` exist, only the WAR is deployed (which may use the directory as an unpack location).
- An XML file like `example.xml` is deployed as a context whose configuration is defined by the XML. The configuration itself must set the context path. If `example.xml` and `example.war` exists, only the XML is deployed (which may use the WAR in its configuration).

If you have a standard web application, you can hot deploy it into Jetty by copying it into the `webapps` directory.

### Jetty Demonstration Web Applications

The demo-base/webapps directory contains the following deployable and auxiliary files:

`ROOT/`
  A directory of static content that is deployed to the root context / due to it’s name. Contains the Jetty demo welcome page.
`test.d`
  A directory containing additional configuration files used by `test.xml` to inject extra configuration into `test.war`.
`test.xml`
  A context configuration file that configures and deploys `test.war.` The additional configuration includes the context path as well as setting additional descriptors found in the `test.d` directory.
`test.war`
  The demonstration web application that is configured and deployed by `test.xml`.
`async-rest.war`
  A web application demonstration of asynchronous REST to eBay, automatically deployed to /async-rest based on the file name.
`test-jaas.war`
  A demonstration web application utilizing JAAS for authentication.
`test-jaas.xml`
  A context configuration file that configures `test-jaas.war`. Additional configuration includes setting up the LoginService for authentication and authorization.
`test-jndi.war`
  A demonstration web application showing the use of JNDI.
`test-jndi.xml`
  A context configuration file that configures `test-jndi.war`. Additional configuration includes defining objects in the naming space that can be referenced from the webapp.
`test-spec.war`
  A demonstration web application that shows the use of annotations, fragments, `ServletContainerInitializers` and other Servlet Specification 3.0/3.1 features.
`test-spec.xml`
  A context configuration file that configures `test-spec.war`. Additional configuration includes setting up some objects in the naming space that can be referenced by annotations.
`xref-proxy.war`
  A demonstration web application that uses a transparent proxy to serve the Jetty source xref from the Eclipse Jetty website.
`example-moved.xml`
  A demonstration context configuration file that shows how to use the `MovedContextHandler` to redirect from one path to another.

Previous | Top | Next
Running Jetty | Home | Chapter 3. An Introduction to Jetty Configuration

See an error or something missing? Contribute to this documentation at Github!(Generated: 2017-01-20)