Exemple #1
0
  public void start() throws IOException {
    long t1 = System.currentTimeMillis();
    // We must have at least 3 handlers:
    // channel is the 'transport'
    // request is the request processor or 'global' chain
    // container is the 'provider'
    // Additional handlers may exist and be used internally
    // or be chained to create one of the standard handlers

    String handlers[] = defaultHandlers;
    // backward compat
    String workers = props.getProperty("handler.list", null);
    if (workers != null) {
      handlers = split(workers, ",");
    }

    // Load additional component declarations
    processModules();

    for (int i = 0; i < handlers.length; i++) {
      String name = handlers[i];
      JkHandler w = getWorkerEnv().getHandler(name);
      if (w == null) {
        newHandler(name, "", name);
      }
    }

    // Process properties - and add aditional handlers.
    processProperties();

    for (int i = 0; i < wEnv.getHandlerCount(); i++) {
      if (wEnv.getHandler(i) != null) {
        try {
          wEnv.getHandler(i).init();
        } catch (IOException ex) {
          if ("apr".equals(wEnv.getHandler(i).getName())) {
            log.info("APR not loaded, disabling jni components: " + ex.toString());
          } else {
            log.error("error initializing " + wEnv.getHandler(i).getName(), ex);
          }
        }
      }
    }

    started = true;
    long t2 = System.currentTimeMillis();
    startTime = t2 - t1;

    this.saveProperties();
    log.info(
        "Jk running ID="
            + wEnv.getLocalId()
            + " time="
            + initTime
            + "/"
            + startTime
            + "  config="
            + propFile);
  }