How to deploy war file to tomcat using command prompt?
I have created a war file and put into tomcat/webapps. How to deploy a war file to tomcat using command prompt?
The earlier answers on this page are correct that you can copy/move the WAR file into place and restart tomcat, but they omit to mention something: you must remove the previously exploded assets (from the previously deployed WAR file) if any are present.
# My tomcat webapps are found at /var/lib/tomcat6/webapps # The application I wish to deploy is the main (ROOT) application webapps_dir=/var/lib/tomcat6/webapps # Remove existing assets (if any) rm -rf $webapps_dir/ROOT # Copy WAR file into place cp example_dir/ROOT.war $webapps_dir # Restart tomcat service tomcat6 restart
Modify the following for your own system:
- Path of your compiled WAR file (to be deployed)
- Path of your tomcat webapps files
- How to restart tomcat (i.e. if not installed as a service)
First add a user role in tomcat-users.xml for role manager-script.
Then to undeploy current app you can use
wget http://username:password@localhost:portnumber/manager/text/undeploy?path=/appname -O - -q
wget http://username:password@localhost:portnumber/manager/text/deploy?path=/appname&war=file:/warpath -O - -q
To do this, we need to place the WAR file inside the Tomcat CATALINA_HOME/WEBAPPS/ directory. Later, Tomcat will automatically deploy and explode this WAR file.
- Change active directory of command prompt to your WAR file location
- Set CATALINA_HOME variable to the path of the Tomcat directory
- Copy the WAR files
Syntax to copy the WAR file from the current directory in the command line:
copy <your-war-file-name> %CATALINA_HOME%\<your-appBase-name>
cd C:\MY_WAR_FILE_LOCATION set CATALINA_HOME="C:\Program Files\Apache\apache-tomcat-7.0.42" copy MYWARFILE.WAR %CATALINA_HOME%\webapps
Note: If a WAR file is copied into the webapps directory while Tomcat is running, it will not be recognized. Simply restart Tomcat to begin using the web application.
You can deploy the war file using tomcat manager app, http://tomcat.apache.org/tomcat-7.0-doc/manager-howto.html#Deploy_A_New_Application_Remotely
If you want from command prompt, then as I know
- Stop tomcat (catalina.bat stop)
- copy war to webapp
- restart tomcat (catalina.bat run)
Using httpie you can upload and deploy the war.
http --auth user:pass PUT http://<tomcatURL>/manager/text/deploy?path=/ < ROOT.war
As you have already copied the war file to tomcat/webapps, you just need to restart the tomcat to deploy the war file.
set tomcatPath=D:\apache-tomcat-7.0.50 call "%tomcatPath%"\bin\catalina.bat **stop** sleep -m 3000 call "%tomcatPath%"\bin\catalina.bat jpda **start**
You could use wget or curl to deploy an app from command line.
wget --http-user=tomcat --http-password=tomcat "http://localhost:8080/manager/text/deploy?war=file:/some/path/SomeWar.war&path=/SomeWar" -O -
But in my case with wget I received this error: "Failed to deploy application at context path ..."
So I solved using curl:
curl -v -u user:password -T app.war 'http://tomcathost/manager/text/deploy?path=/my-app-path&update=true'