code: @Override
      public InternalWsResource resolveResource(String resourceURI) {
          if (resourceURI == null || resourceURI.length() == 0)
              return null;
  
          String normalPath = PathUtils.normalize(resourceURI);
  
          if (PathUtils.containsSymbol(normalPath)) {
              return SymbolRegistry.getRegistry().resolveSymbolicResource(normalPath);
          }
  
          // *nix absolute path: /something -- implies file
          if (normalPath.length() >= 1 && normalPath.charAt(0) == '/') {
              SymbolicRootResource root = resolveRoot(normalPath);
              return LocalFileResource.newResource(normalPath, null, root);
          }
  
          // Absolute windows pathname: c:/something -- implies file
          if (normalPath.length() > 2 && normalPath.charAt(1) == ':') {
              SymbolicRootResource root = resolveRoot(normalPath);
              return LocalFileResource.newResource(normalPath, null, root);
          }
  
          // resolve relative paths against server root
          if (!PathUtils.pathIsAbsolute(normalPath))
              return serverConfigDir.createDescendantResource(normalPath);
  
          // Use URI to determine type of resource
          URI uri = null;
  
          // check for valid URI
          try {
              // try straight construction of a URI (will fail on spaces, illegal
              // characters, etc)
              uri = new URI(normalPath);
          } catch (URISyntaxException e) {
              try {
                  // try constructing a no-scheme URI based on the given string
                  // (relative path version)
                  uri = new URI(null, null, normalPath, null);
              } catch (URISyntaxException e1) {
                  MalformedLocationException e3;
                  e3 = new MalformedLocationException("Could not construct URI to resolve resource (path=" + normalPath + ")");
                  e3.initCause(e1); // report the original problem with the URI string
                  throw e3;
              }
          }
  
          return resolveResource(uri);
      }
docs: {@inheritDoc}