I know that I can rename my webapp (or it\'s WAR file) to ROOT but this is a terrible way to do it, IMHO. Now I checked out the tomcat doc & it says
In Tomcat 9.0, I only have to change the following in the server.xml
<Context docBase="web" path="/web" reloadable="true" source="org.eclipse.jst.jee.server:web"/>
to
<Context docBase="web" path="" reloadable="true" source="org.eclipse.jst.jee.server:web"/>
This little code worked for me, using virtual hosts
<Host name="my.host.name" >
<Context path="" docBase="/path/to/myapp.war"/>
</Host>
What you can do is the following;
Add a file called ROOT.xml
in <catalina_home>/conf/Catalina/localhost/
This ROOT.xml will override the default settings for the root context of the tomcat installation for that engine and host (Catalina and localhost).
Enter the following to the ROOT.xml file;
<Context
docBase="<yourApp>"
path=""
reloadable="true"
/>
Here, <yourApp>
is the name of, well, your app.. :)
And there you go, your application is now the default application and will show up on http://localhost:8080
However, there is one side effect; your application will be loaded twice. Once for localhost:8080
and once for localhost:8080/yourApp
. To fix this you can put your application OUTSIDE <catalina_home>/webapps
and use a relative or absolute path in the ROOT.xml's docBase tag. Something like this;
<Context
docBase="/opt/mywebapps/<yourApp>"
path=""
reloadable="true"
/>
And then it should be all OK!
In Tomcat 8.X ,under tomcat home directory /conf/ folder in server.xml you can add <Context>
tag under <Host>
tag as shown below . But you have to restart the server in order to take effect
<Host name="localhost" appBase="webapps"
unpackWARs="true" autoDeploy="true">
<Context docBase="${catalina.base}\webapps\<Your App Directory Name>" path="<your app path you wish>" reloadable="true" />
</Host>
OR if you are using Tomcat 7.X you can add context.xml file in WEB-INF folder in your project . The contents of the file i used is as shown . and it worked fine for me . you don't have to restart server in this case .
<?xml version="1.0" encoding="UTF-8"?>
<Context docBase="${catalina.base}\webapps\<My App Directory Name>" path="<your app path you wish>" reloadable="true" />
Here follows the only solutions that worked for me. Add this to the Host node in the conf/server.xml
<Context path="" docBase="yourAppContextName">
<!-- Default set of monitored resources -->
<WatchedResource>WEB-INF/web.xml</WatchedResource>
</Context>
go to Tomcat server.xml file and set path blank
Quickest and may be the best solution is to have below content in <TOMCAT_INSTALL_DIR>/conf/Catalina/localhost/ROOT.xml
<Context
docBase="/your_webapp_location_directory"
path=""
reloadable="true"
/>
And your webapp will be available at http://<host>:<port>/