package com.lifeasageek.goodstuffexample; import ch.qos.logback.classic.Level; import ch.qos.logback.classic.Logger; import org.eclipse.jetty.server.Server; import org.eclipse.jetty.server.handler.HandlerList; import org.eclipse.jetty.server.handler.ResourceHandler; import org.eclipse.jetty.servlet.ServletContextHandler; import org.eclipse.jetty.webapp.WebAppContext; import org.slf4j.LoggerFactory; /** * * @author Justin Wyer <justin@lifeasageek.com> */ public class App { private static String[] jettyConfigurationClasses = { "org.eclipse.jetty.webapp.WebInfConfiguration", "org.eclipse.jetty.webapp.WebXmlConfiguration", "org.eclipse.jetty.webapp.MetaInfConfiguration", "org.eclipse.jetty.webapp.FragmentConfiguration", "org.eclipse.jetty.plus.webapp.EnvConfiguration", "org.eclipse.jetty.webapp.JettyWebXmlConfiguration" }; private static Server server; private static void initServer() { try { server = new Server(8080); HandlerList handlerList = new HandlerList(); WebAppContext webapp = new WebAppContext(); webapp.setConfigurationClasses(jettyConfigurationClasses); String webappPath = App.class.getClassLoader().getResource("webapp").toExternalForm(); webapp.setDescriptor(webappPath + "/WEB-INF/web.xml"); webapp.setContextPath("/"); webapp.setResourceBase(webappPath); webapp.setClassLoader(Thread.currentThread().getContextClassLoader()); ServletContextHandler servletContextHandler; servletContextHandler = new ServletContextHandler(getServer(), "/", ServletContextHandler.SESSIONS); ResourceHandler resourceHandler = new ResourceHandler(); resourceHandler.setResourceBase(webappPath); handlerList.addHandler(servletContextHandler); handlerList.addHandler(resourceHandler); handlerList.addHandler(webapp); getServer().setHandler(handlerList); getServer().start(); } catch (Exception ex) { ex.printStackTrace(); } } public static void main(String[] args) { Logger root = (Logger)LoggerFactory.getLogger(Logger.ROOT_LOGGER_NAME); root.setLevel(Level.INFO); initServer(); } /** * @return the server */ public static Server getServer() { return server; } }