Is it possible to remove the tomcat ROOT directory? We have several applications running on a tomcat instance. I was asked to clean the webapps directory up and remove any unused folders. I removed
manager
host-manager
docs
examples
Everything is fine, as I expected. I looked at the ROOT folder an there are images, a couple of jsp pages and a WEB-INF directory. None of these are used by our applications, so I removed the ROOT directory. Now the server hangs on startup and my applications don't start. Can the ROOT directory be removed? It appears that according to the Apache docs it is optional:
"The ROOT web application presents a very low security risk but it does include the version of Tomcat that is being used. The ROOT web application should normally be removed from a publicly accessible Tomcat instance, not for security reasons, but so that a more appropriate default page is shown to users."
I tried leaving just an empty ROOT directory, but it still hangs. Is there a configuration that I'm missing somewhere that could be looking for the ROOT directory?
Tomcat version 8.5.15
Best Answer
Many Tomcat components assume that an
org.apache.catalina.Context
is available for each request. If you delete theROOT
application, this won't be true for all URI paths andNullPointerException
s will follow. This certainly happens with theRewriteValve
, but may apply to other components.Therefore it is better to have a
ROOT
application, but it can also be an empty directory.Whether this behaviour of Tomcat components is a bug or not is susceptible to discussion. Personally I consider a missing
ROOT
context as a misconfiguration, but you can file a bug report if you think otherwise.