Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Select an option

  • Save anirtek/08c27e11ae3b0b87f8e4560a38351a48 to your computer and use it in GitHub Desktop.

Select an option

Save anirtek/08c27e11ae3b0b87f8e4560a38351a48 to your computer and use it in GitHub Desktop.
Setup Swagger with an embedded Jetty Server

In setting up a Jetty server with Jersey servlets, you may choose to use an embedded Jetty server setup. (See here). In this gist, we'll go through how to setup Swagger for this setup.

In the Swagger Core setup, the only recommendations are involving a regular Application class, or a web.xml, neither of which are used in an embedded Jetty server setup. To add Swagger to your embedded Jetty Server, you must do 3 things:

  1. Add the package scanning packages to your servlets which will serve your REST API.
  2. Add the Swagger package scanning servlet.
  3. [Optional] Package the Swagger-UI static HTML5 content with your server

Let's start with a basic server class, adapted from the Eclipse tutorial above.

public class OneServletContext { public static void main(String[] args) throws Exception { Server server = new Server(8080);

    ServletContextHandler context = new ServletContextHandler(ServletContextHandler.SESSIONS);
    context.setContextPath("/");
    server.setHandler(context);

    ServletHolder apiServlet = context.addServlet(ServletContainer.class, "/api/*");
    apiServlet.setInitOrder(1);
    apiServlet.setInitParameter("com.sun.jersey.config.property.packages", "com.api.resources");

    server.start();
    server.join();
}

}

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment