Jetty/Howto/Deploy Web Applications
Jetty can deploy web applications as war files (packed or unpacked), as provided or with overridden configuration, with static or hot deployment.
The $JETTY_HOME/webapps directory is scanned at startup for webapplications to deploy:
- The file foo.war will be deployed as a webapp at context /foo
- The directory foo/ will be deployed at context /foo. If the directory has a WEB-INF subdirectory, it will be treated as servlet webapp, otherwise it will served only as static content.
- If both a foo.war and a foo/ directory exists, then the one with the most recent last-modified date is used.
- If the webapp is called root.war or the directory is called root/ then it will be deployed at the / context.
- Note: if the contextXmlDir option is used an a foo.xml file exists in that dir, the WebAppProvider will defer to the Contexts deployer for actual webapp deployment.
See also older (but mostly relevant) Jetty-6 WebAppDeployer documentation.
The $JETTY_HOME/contexts directory is scanned at runtime for context.xml files, that describe either:
- a standard war file (or directory), plus additional configuration.
- a custom jetty context.
See also older (but mostly relevant) Jetty-6 ContextDeployer documentation.
Jetty Maven Plugin
If you develop your web application as a maven project, then it can be deployed in jetty with "mvn jetty:run" using the Jetty Maven Plugin
Maven lets you build your web applications by overlaying on other template web applications (eg Cometd) and will manage the transitive dependencies needed to populate WEB-INF/lib
OSGi web application bundle
Web applications can also be deployed into embedded jetty, either via direct configuration or via configuration of a deployer. For an example see the Embedding Jetty Tutorial