package cn.ihandy.spider.embedded.jetty;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.mortbay.jetty.Connector;
import org.mortbay.jetty.Server;
import org.mortbay.jetty.handler.HandlerList;
import org.mortbay.jetty.handler.ResourceHandler;
import org.mortbay.jetty.nio.SelectChannelConnector;
import org.mortbay.jetty.servlet.Context;
import org.mortbay.jetty.servlet.ServletHandler;
import cn.ihandy.spider.io.hessian.HSDynamicServiceForwardServlet;
import cn.ihandy.spider.io.servlet.FileUploadServlet;
public class EmbeddedJettyServer {
static Log log = LogFactory.getLog(EmbeddedJettyServer.class);
Server server = null;
public void start() {
try {
String jetty_home = System.getProperty("jetty.home", this.getClass().getResource("/").getPath());
Server server = new Server();
Connector connector = new SelectChannelConnector();
connector.setPort(Integer.getInteger("jetty.port",8080).intValue());
server.setConnectors(new Connector[]{connector});
Context root = new Context(server,"/", Context.SESSIONS);
ServletHandler servlet_handler = new ServletHandler();
servlet_handler.addServletWithMapping(HSDynamicServiceForwardServlet.class, "/hService");
servlet_handler.addServletWithMapping(FileUploadServlet.class, "/fileupload");
ResourceHandler resource_handler = new ResourceHandler();
resource_handler.setWelcomeFiles(new String[]{"index.html"});
resource_handler.setResourceBase(jetty_home + "/webapps/report");
log.debug("resource: " + resource_handler.getBaseResource());
HandlerList handlers = new HandlerList();
handlers.addHandler(resource_handler);
handlers.addHandler(servlet_handler);
root.setHandler(handlers);
server.start();
server.join();
}catch(Exception e) {
e.printStackTrace();
}
}
public void stop() {
try {
server.stop();
} catch (Exception e) {
e.printStackTrace();
}
}
}