Thursday, May 13, 2010

Embedded Jetty Server

A simple utility class to embed Jetty web server:
import org.eclipse.jetty.server.Server;
import org.eclipse.jetty.servlet.FilterHolder;
import org.eclipse.jetty.servlet.FilterMapping;
import org.eclipse.jetty.servlet.ServletContextHandler;
import org.eclipse.jetty.servlet.ServletHolder;

public enum WebContainer {
INSTANCE;
private Server server;

public void startServer(String resourceBase, String contextPath, int port) {
try {
server = new Server(port);
ServletContextHandler handler = new ServletContextHandler(ServletContextHandler.SESSIONS);
handler.setContextPath(contextPath);
handler.setResourceBase(resourceBase);
server.setHandler(handler);
////////////////////////////////////////////////////////
// add servlet context init params using the following
// handler.getServletContext().setInitParameter(, );
////////////////////////////////////////////////////////

////////////////////////////////////////////////////////
// add event listeners using
// handler.addEventListener();
////////////////////////////////////////////////////////

////////////////////////////////////////////////////////
// add filters using
// handler.addFilter(, , );
////////////////////////////////////////////////////////
////////////////////////////////////////////////////////
// add servlets using
// handler.addServlet(, );
////////////////////////////////////////////////////////
server.start();
server.join();
} catch(Exception e) {
e.printStackTrace();
}
}

public void stopServer() {
try {
server.stop();
} catch(Exception e) {
e.printStackTrace();
}
}
}

Use WebContainer.INSTANCE.startServer(...); and WebContainer.INSTANCE.stopServer(); to start and stop the server respectively.

No comments:

Post a Comment