package humanize.faces; import javax.faces.webapp.FacesServlet; import org.eclipse.jetty.server.Server; import org.eclipse.jetty.servlet.DefaultServlet; import org.eclipse.jetty.servlet.ServletContextHandler; import org.eclipse.jetty.servlet.ServletHolder; import com.sun.faces.config.ConfigureListener; class RunServer { public static void main(String args[]) { new RunServer(8080); } private final Server server; public RunServer(int port) { System.out.println("Initializing server..."); final ServletContextHandler context = new ServletContextHandler(ServletContextHandler.SESSIONS); context.setContextPath("/"); context.setResourceBase("src/integration/webapp"); context.setClassLoader(Thread.currentThread().getContextClassLoader()); context.addServlet(DefaultServlet.class, "/"); context.addEventListener(new ConfigureListener()); context.setWelcomeFiles(new String[] { "index.xhtml" }); final ServletHolder faces = context.addServlet(FacesServlet.class, "*.xhtml"); faces.setInitParameter("classpath", context.getClassPath()); // add your own additional servlets like this: // context.addServlet(JSONServlet.class, "/json"); server = new Server(port); server.setHandler(context); System.out.println("Starting server..."); new Thread() { public void run() { try { server.start(); } catch (Exception e) { System.out.println("Failed to start server!"); return; } System.out.println("Server running..."); while (true) { try { server.join(); } catch (InterruptedException e) { System.out.println("Server interrupted!"); } } }; }.start(); } public void stop() throws Exception { server.stop(); } }