How to deploy war file to tomcat using command prompt?
Solution 1
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)
Solution 2
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
To deploy
wget http://username:password@localhost:portnumber/manager/text/deploy?path=/appname&war=file:/warpath -O - -q
Solution 3
You could use wget or curl to deploy an app from command line.
With wget:
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'
Solution 4
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>
Example:
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.
user3607853
Updated on November 28, 2020Comments
-
user3607853 over 3 years
I have created a war file and put into
tomcat/webapps
. How to deploy a war file to tomcat using command prompt? -
Quaternion almost 6 yearsI kept getting "-O: command not found" but if I wrapped the url part with "" then I had no issues, so for others I recommend doing that.
-
Kingsley over 5 yearsDoes this un-deploy any existing version?
-
Andrew T Finnell about 5 yearsI needed to specify PUT specifically with
-X PUT
. Other than that it works perfectly.