在过去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/