I'm using Tomcat 7 and would like to set the context root of a war file in the war file itself and have Tomcat autodeploy and pick up this path.
I thought I found the way to do it by putting a context.xml in the META-INF directory of the war which contains.
<?xml version="1.0" encoding="UTF-8"?>
<Context path="/somepath/myapp"/>
But this doesn't seem to work, I think it's loaded by http://tomcat.apache.org/tomcat-7.0-doc/api/org/apache/catalina/startup/SetContextPropertiesRule.html which states it loads everything but the path!
I know I can name the war somepath#myapp.war and it will pick it up but I also deploy to weblogic which isn't happy with a name like this.
Is there some setting I can use to have the path work from the context.xml above?
Thanks
David
Best Answer
The Context
path
attribute is ignored unless the path is specified in a hard-codedContext
inserver.xml
, which is strongly discouraged, and doesn't take multilevel paths.The name of the war file, or the name of the Context xml file in
tomcat/conf/Catalina/hostname
becomes thepath
of the deployed application.In your case the latter of the two above is the solution, just make sure you put the
.war
file outside of the designatedappBase
for the Host, or you'll deploy the app twice.In:
conf/Catalina/localhost/myapp#path.xml