@Override
  protected void startInternal() throws LifecycleException {
    String docBase = context.getDocBase();

    File f = new File(docBase);
    if (!f.isAbsolute()) {
      f = new File(((Host) context.getParent()).getAppBaseFile(), f.getName());
    }
    if (f.isDirectory()) {
      main = new DirResourceSet(this, f.getAbsolutePath(), "", "");
    } else if (f.isFile() && docBase.endsWith(".war")) {
      main = new JarResourceSet(this, f.getAbsolutePath(), "", "");
    } else {
      throw new IllegalArgumentException(sm.getString("standardRoot.startInvalidMain"));
    }

    mainResources.clear();
    mainResources.add(main);

    for (ArrayList<WebResourceSet> list : allResources) {
      for (WebResourceSet webResourceSet : list) {
        webResourceSet.start();
      }
    }

    setState(LifecycleState.STARTING);
  }