| // ======================================================================== |
| // 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. |
| // ======================================================================== |
| |
| [[quickstart-deploying-webapps]] |
| === Deploying Web Applications |
| |
| Jetty server instances that configure the deploy module will have a web application deployer that link:#hot-deployment[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 link:#jaas-support[JAAS] for authentication. |
| `test-jaas.xml`:: |
| A context configuration file that configures `test-jaas.war`. |
| Additional configuration includes setting up the link:#configuring-login-service[LoginService] for authentication and authorization. |
| `test-jndi.war`:: |
| A demonstration web application showing the use of link:#jndi[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 link:{JXURL}/[xref] from the http://www.eclipse.org/jetty[Eclipse Jetty website]. |
| `example-moved.xml`:: |
| A demonstration context configuration file that shows how to use the link:#moved-context-handler[`MovedContextHandler`] to redirect from one path to another. |