【发布时间】:2014-09-21 16:11:54
【问题描述】:
我创建了一个war文件并放入tomcat/webapps。如何使用命令提示符将war文件部署到tomcat?
【问题讨论】:
标签: tomcat deployment command war
我创建了一个war文件并放入tomcat/webapps。如何使用命令提示符将war文件部署到tomcat?
【问题讨论】:
标签: tomcat deployment command war
此页面上较早的答案是正确的,您可以将 WAR 文件复制/移动到位并重新启动 tomcat,但他们忽略了一些事情:如果有的话,您必须删除之前爆炸的资产(从之前部署的 WAR 文件中)存在。
# 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
为自己的系统修改以下内容:
【讨论】:
首先在tomcat-users.xml中为角色manager-script添加一个用户角色。
然后取消部署您可以使用的当前应用程序
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
【讨论】:
您可以使用 wget 或 curl 从命令行部署应用程序。
使用 wget:
wget --http-user=tomcat --http-password=tomcat "http://localhost:8080/manager/text/deploy?war=file:/some/path/SomeWar.war&path=/SomeWar" -O -
但在我使用 wget 的情况下,我收到了这个错误: “无法在上下文路径部署应用程序...”
所以我用 curl 解决了:
curl -v -u user:password -T app.war 'http://tomcathost/manager/text/deploy?path=/my-app-path&update=true'
【讨论】:
-X PUT 专门指定 PUT。除此之外,它完美无缺。
为此,我们需要将 WAR 文件放在 Tomcat CATALINA_HOME/WEBAPPS/ 目录中。以后Tomcat会自动部署和分解这个WAR文件。
CATALINA_HOME变量设置为Tomcat目录的路径在命令行中从当前目录复制WAR文件的语法:
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
注意:如果在 Tomcat 运行时将 WAR 文件复制到 webapps 目录中,它将无法被识别。只需重新启动 Tomcat 即可开始使用 Web 应用程序。
【讨论】:
您可以使用 tomcat manager 应用程序部署 war 文件,http://tomcat.apache.org/tomcat-7.0-doc/manager-howto.html#Deploy_A_New_Application_Remotely
如果你想从命令提示符,那么据我所知
【讨论】:
使用httpie,您可以上传和部署战争。
http --auth user:pass PUT http://<tomcatURL>/manager/text/deploy?path=/ < ROOT.war
【讨论】:
由于您已经将war文件复制到tomcat/webapps,您只需重启tomcat即可部署war文件。
命令提示符:
set tomcatPath=D:\apache-tomcat-7.0.50
call "%tomcatPath%"\bin\catalina.bat **stop**
sleep -m 3000
call "%tomcatPath%"\bin\catalina.bat jpda **start**
【讨论】:
我试过了,效果很好
curl --request PUT --upload-file webapp.war --basic --user user:password \
http://hostname:port/manager/text/deploy?path=/web_path\&update=true
它基于已发布的 tomcat 管理器 API: https://tomcat.apache.org/tomcat-9.0-doc/manager-howto.html#Deploy_A_New_Application_Archive_(WAR)_Remotely
【讨论】: