Is there a bug on line 259 of HttpServer: https://github.com/apache/hadoop-common/blob/trunk/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/http/HttpServer.java
webAppContext.setWar(appDir + "/" + name); I believe this should be: webAppContext.setWar(appDir + "/" + name + "/"); As in jetty's JarResource class it will not recognise the sub-entry in a jar as a directory if it doesn't have a trailing slash. As a result, it extracts the files into the subdirectory and then Jetty doesn't find them.