java - 部署 war 到tomcat

标签 java tomcat deployment

在过去10年左右的时间里,我无数次有机会把web应用部署到tomcat中。我还写了几个脚本试图自动做到这一点,但从来没有 设法使其完全自动化。

问题来了。我正在尝试部署一个新的 war ,与我的 tomcat 的网络应用程序中的现有 war 同名。

选项 1:天真的方法 - 只需复制 war 并等待它更新 exploded 目录。这有时会奏效。很多次 - 展开的目录没有在合理的时间内更新。
选项 2:通过方法 - 停止 tomcat,删除所有 war 和临时文件。复制 war 并启动tomcat。这通常涉及停止 tomcat,等待一段时间 - 然后检查进程是否仍然存在并杀死它。
选项 3:手动方法 - 这可能令人惊讶,但我发现它在很多时候都有效 - 复制 war,等待 exploded 目录更新,一旦更新 - 重启tomcat。如果没有 - 您可以尝试删除临时工作文件,这有时会有所帮助。

我还尝试了很多选项 - 具有不同的顺序和操作子集 - 重启、停止、删除 war 、删除爆炸、删除本地主机上下文、删除本地主机工作目录、复制 war 、 sleep 、比较日期、礼貌地要求 tomcat重新加载等。似乎没有什么可以正常工作。

这可能是我做错了什么,但我从很多人那里听到了同样的经历,所以我来这里是为了征求一些建议——你怎么说?将新 war 部署到 tomcat 的最佳方法是什么?

谢谢!

最佳答案

您可以使用 curl 在 shell 脚本中轻松地自动执行此操作

在 tomcat 6 上:

curl --upload-file deployme.war "http://tomcat:s3cret@localhost:8088/manager/deploy?path=/deployme&update=true"

在 tomcat 7 上

curl -T "deployme.war" "http://tomcat:s3cret@localhost:8080/manager/text/deploy?path=/deployme&update=true"

或通过几乎任何编程语言。我发布了一个基于 Java 的解决方案 here

关于java - 部署 war 到tomcat,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9951763/

相关文章:

c# - List<Object> 序列化在开发计算机上工作,但在其他计算机上失败

java - 生成 Observable 发出的值

java - SonarQube 参数值

浏览器打不开tomcat

php - 在生产中升级到 Drupal

python - 如何将此 "Python+twill+mechanize"组合部署到 "Google App Engine"?

java - 如何通过插件在 Eclipse 项目中创建包(文件夹)

Java发送instanceof作为参数

java - 限制 SSLContext 中的协议(protocol)

tomcat - 403 拒绝访问 Tomcat 8 Manager 应用程序而不提示输入用户/密码