Skip to content
Branch: master
Go to file

Latest commit


Failed to load latest commit information.
Latest commit message
Commit time

Embedded Jetty web application

This project shows how to build a WAR-less Java web application with Jetty.

Only a single JVM is required to start the web app. No web container or JEE server is required.

Instead of building a war file, an auto-executable JAR file is built with Maven (ie. jetty-webapp-1.0.0-SNAPSHOT.jar)

This JAR contains all resources required by a web application: web.xml, index.jsp, images, js, css... The JettyServer class provides both a start and a stop method. Its main method starts the server. To stop it, you may use the Stop class.

Thanks to the Application Assembler Maven Plugin a and a script are available.

All JAR dependencies are available in a lib\ sub-directory.

Try it

Download the code with git: git clone git://

Build and package the web application

cd embedded-jetty-webapp
mvn clean install

Start the web application

target/appassembler/bin/ &

Stop the web application


Browse to http://localhost:8080/HelloWorld

Web port could be changed at startup:

target/appassembler/bin/ 80 8090 &

Another possibility is to build a JAR that include all its dependencies (web app, jetty dependencies, logger, spring ...) :

mvn clean install -Pfatjar
java -jar target/jetty-webapp-1.0.0-SNAPSHOT-jar-with-dependencies.jar
java -cp target/jetty-webapp-1.0.0-SNAPSHOT-jar-with-dependencies.jar com.javaetmoi.jetty.Stop

Configuration rules

Compared to the Maven Standard Directory Layout of a WAR, the web application sources is not put into the src/main/webapp but into the src/main/resources/webapp. Thus the webapp resources are copied into the JAR in a webapp/ sub-directory.



WAR-less Java web application with Jetty



No releases published


You can’t perform that action at this time.