Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How can I specify "Context path" on Tomcat 8 inside META-INF/context.xml in java war file?

How can I deploy mywebapp-1.0.0.war to $TOMCAT_HOME/webapps directory with context path /mywebapp using context.xml inside the war file on Tomcat 8?

I'm getting back to work with Tomcat after long time since version 5. I'm used to create META-INF/context.xml inside my war file:

<?xml version="1.0" encoding="UTF-8"?>
<Context path="/mywebapp">
  ...
</Context>

Maven creates a war file with this name: mywebapp-1.0.0.war

But when I deploy the war file to $TOMCAT_HOME/webapps directory the context path will be http://localhost:8080/mywebapp-1.0.0 instead of http://localhost:8080/mywebapp/.

Also I see that $TOMCAT_HOME/conf/Catalina/localhost is empty, instead of having the xml file copied from the war file deployed.

I also added to $TOMCAT_HOME/conf/server.xml the deployXML="true"

 <Host name="localhost"  appBase="webapps"
        unpackWARs="true" autoDeploy="true" 
        deployXML="true">
like image 505
j2gl Avatar asked May 13 '15 19:05

j2gl


2 Answers

It is not possible to put a war inside the webapp directory and set the path attribute in META-INF/context.xml file at the same time. Tomcat 8 documentation, clearly says about this attribute:

This attribute must only be used when statically defining a Context in server.xml. In all other circumstances, the path will be inferred from the filenames used for either the .xml context file or the docBase.

like image 190
j2gl Avatar answered Sep 20 '22 01:09

j2gl


Can't you just rename your war file to mywebapp (via Maven or else) so that Tomcat will deploy it under /mywebapp ?

like image 30
Medhi Redjem Avatar answered Sep 19 '22 01:09

Medhi Redjem