Java 类org.apache.hadoop.hbase.util.HttpServerUtil 实例源码

项目:HIndex    文件:HBaseRESTTestingUtility.java   
public void startServletContainer(Configuration conf) throws Exception {
  if (server != null) {
    LOG.error("ServletContainer already running");
    return;
  }

  // Inject the conf for the test by being first to make singleton
  RESTServlet.getInstance(conf, User.getCurrent().getUGI());

  // set up the Jersey servlet container for Jetty
  ServletHolder sh = new ServletHolder(ServletContainer.class);
  sh.setInitParameter(
    "com.sun.jersey.config.property.resourceConfigClass",
    ResourceConfig.class.getCanonicalName());
  sh.setInitParameter("com.sun.jersey.config.property.packages",
    "jetty");

  LOG.info("configured " + ServletContainer.class.getName());

  // set up Jetty and run the embedded server
  server = new Server(0);
  server.setSendServerVersion(false);
  server.setSendDateHeader(false);
    // set up context
  Context context = new Context(server, "/", Context.SESSIONS);
  context.addServlet(sh, "/*");
  // Load filters specified from configuration.
  String[] filterClasses = conf.getStrings(Constants.FILTER_CLASSES,
    ArrayUtils.EMPTY_STRING_ARRAY);
  for (String filter : filterClasses) {
    filter = filter.trim();
    context.addFilter(Class.forName(filter), "/*", 0);
  }
  HttpServerUtil.constrainHttpMethods(context);
  LOG.info("Loaded filter classes :" + filterClasses);
    // start the server
  server.start();
    // get the port
  testServletPort = server.getConnectors()[0].getLocalPort();

  LOG.info("started " + server.getClass().getName() + " on port " + 
    testServletPort);
}
项目:hadoop-mini-clusters    文件:HbaseRestLocalCluster.java   
@Override
public void start() throws Exception {
    VersionInfo.logVersion();
    Configuration conf = builder.getHbaseConfiguration();

    conf.set("hbase.rest.port", hbaseRestPort.toString());
    conf.set("hbase.rest.readonly", (hbaseRestReadOnly == null) ? "true" : hbaseRestReadOnly.toString());
    conf.set("hbase.rest.info.port", (hbaseRestInfoPort == null) ? "8085" : hbaseRestInfoPort.toString());
    String hbaseRestHost = (this.hbaseRestHost == null) ? "0.0.0.0" : this.hbaseRestHost;

    Integer hbaseRestThreadMax = (this.hbaseRestThreadMax == null) ? 100 : this.hbaseRestThreadMax;
    Integer hbaseRestThreadMin = (this.hbaseRestThreadMin == null) ? 2 : this.hbaseRestThreadMin;

    UserProvider userProvider = UserProvider.instantiate(conf);
    Pair<FilterHolder, Class<? extends ServletContainer>> pair = loginServerPrincipal(userProvider, conf);
    FilterHolder authFilter = pair.getFirst();
    Class<? extends ServletContainer> containerClass = pair.getSecond();
    RESTServlet.getInstance(conf, userProvider);

    // set up the Jersey servlet container for Jetty
    ServletHolder sh = new ServletHolder(containerClass);
    sh.setInitParameter("com.sun.jersey.config.property.resourceConfigClass", ResourceConfig.class.getCanonicalName());
    sh.setInitParameter("com.sun.jersey.config.property.packages", "jetty");
    ServletHolder shPojoMap = new ServletHolder(containerClass);
    Map<String, String> shInitMap = sh.getInitParameters();
    for (Map.Entry<String, String> e : shInitMap.entrySet()) {
        shPojoMap.setInitParameter(e.getKey(), e.getValue());
    }
    shPojoMap.setInitParameter(JSONConfiguration.FEATURE_POJO_MAPPING, "true");

    // set up Jetty and run the embedded server

    server = new Server();

    Connector connector = new SelectChannelConnector();
    if (conf.getBoolean(RESTServer.REST_SSL_ENABLED, false)) {
        SslSelectChannelConnector sslConnector = new SslSelectChannelConnector();
        String keystore = conf.get(RESTServer.REST_SSL_KEYSTORE_STORE);
        String password = HBaseConfiguration.getPassword(conf, RESTServer.REST_SSL_KEYSTORE_PASSWORD, null);
        String keyPassword = HBaseConfiguration.getPassword(conf, RESTServer.REST_SSL_KEYSTORE_KEYPASSWORD, password);
        sslConnector.setKeystore(keystore);
        sslConnector.setPassword(password);
        sslConnector.setKeyPassword(keyPassword);
        connector = sslConnector;
    }
    connector.setPort(hbaseRestPort);
    connector.setHost(hbaseRestHost);
    connector.setHeaderBufferSize(8192);


    server.addConnector(connector);

    QueuedThreadPool threadPool = new QueuedThreadPool(hbaseRestThreadMax);
    threadPool.setMinThreads(hbaseRestThreadMin);
    server.setThreadPool(threadPool);

    server.setSendServerVersion(false);
    server.setSendDateHeader(false);
    server.setStopAtShutdown(true);
    // set up context
    Context context = new Context(server, "/", Context.SESSIONS);
    context.addServlet(shPojoMap, "/status/cluster");
    context.addServlet(sh, "/*");
    if (authFilter != null) {
        context.addFilter(authFilter, "/*", 1);
    }

    HttpServerUtil.constrainHttpMethods(context);

    // Put up info server.
    int port = (hbaseRestInfoPort == null) ? 8085 : hbaseRestInfoPort;
    if (port >= 0) {
        conf.setLong("startcode", System.currentTimeMillis());
        String a = hbaseRestHost;
        infoServer = new InfoServer("rest", a, port, false, conf);
        infoServer.setAttribute("hbase.conf", conf);
        infoServer.start();
    }
    // start server
    server.start();
}
项目:PyroDB    文件:HBaseRESTTestingUtility.java   
public void startServletContainer(Configuration conf) throws Exception {
  if (server != null) {
    LOG.error("ServletContainer already running");
    return;
  }

  // Inject the conf for the test by being first to make singleton
  RESTServlet.getInstance(conf, User.getCurrent().getUGI());

  // set up the Jersey servlet container for Jetty
  ServletHolder sh = new ServletHolder(ServletContainer.class);
  sh.setInitParameter(
    "com.sun.jersey.config.property.resourceConfigClass",
    ResourceConfig.class.getCanonicalName());
  sh.setInitParameter("com.sun.jersey.config.property.packages",
    "jetty");

  LOG.info("configured " + ServletContainer.class.getName());

  // set up Jetty and run the embedded server
  server = new Server(0);
  server.setSendServerVersion(false);
  server.setSendDateHeader(false);
    // set up context
  Context context = new Context(server, "/", Context.SESSIONS);
  context.addServlet(sh, "/*");
  // Load filters specified from configuration.
  String[] filterClasses = conf.getStrings(Constants.FILTER_CLASSES,
    ArrayUtils.EMPTY_STRING_ARRAY);
  for (String filter : filterClasses) {
    filter = filter.trim();
    context.addFilter(Class.forName(filter), "/*", 0);
  }
  HttpServerUtil.constrainHttpMethods(context);
  LOG.info("Loaded filter classes :" + filterClasses);
    // start the server
  server.start();
    // get the port
  testServletPort = server.getConnectors()[0].getLocalPort();

  LOG.info("started " + server.getClass().getName() + " on port " + 
    testServletPort);
}