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?

Answers


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

To deploy

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>

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.


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.

Command prompt:

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.

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'

Need Your Help

Line of business applications: Will F# make my life easy?

c# .net asp.net silverlight f#

I develop mainly line of business applications.No scientific operations. No complex calculations. Just tie User Interface to database. The only reason I use threading is to do some work in backgrou...

wpf 4.0 datagrid template column two-way binding problem

wpf binding c#-4.0 wpfdatagrid

I'm using the datagrid from wpf 4.0. This has a TemplateColumn containing a checkbox. The IsChecked property of the checkbox is set via binding.