kra*_*ver 14 java deployment tomcat
在过去10年左右的时间里,我有机会无数次地将Web应用程序部署到tomcat中.我还写了几个脚本试图自动执行,但从未设法完全自动化它.
这是问题所在.我正在尝试部署一个新的战争,与我的tomcat的webapps中的现有战争同名.
选项1:天真的方法 - 只需复制战争并等待它更新爆炸目录.这有时是有效的.很多时候 - 爆炸目录在合理的时间内没有更新.
选项2:直通方法 - 停止tomcat,删除所有战争和临时文件.复制战争并启动tomcat.这通常涉及停止tomcat,等待一段时间 - 然后检查进程是否仍然存在并将其杀死.
选项3:手动方法 - 这可能是令人惊讶的,但我发现它可以工作很多次 - 复制战争,等待爆炸目录更新,一旦它 - 重新启动tomcat.如果没有 - 您可以尝试删除临时工作文件,这有时会有所帮助.
我也尝试了很多选项 - 使用不同的顺序和动作的子集 - 重启,停止,删除战争,删除爆炸,删除localhost上下文,删除localhost工作目录,复制战争,睡眠,比较日期,请求tomcat礼貌地重新加载,等等似乎什么都没有效果.
这可能是我做错了,但我听到了很多人的相同经历,所以我在这里得到一些建议 - 你说什么?将新战争部署到tomcat的最佳方法是什么?
谢谢!
sys*_*ern 11
您可以使用curl在shell脚本中轻松自动执行此操作
在tomcat 6:
curl --upload-file deployme.war "http://tomcat:s3cret@localhost:8088/manager/deploy?path=/deployme&update=true"
Run Code Online (Sandbox Code Playgroud)
在tomcat 7上
curl -T "deployme.war" "http://tomcat:s3cret@localhost:8080/manager/text/deploy?path=/deployme&update=true"
Run Code Online (Sandbox Code Playgroud)
或通过几乎任何porgramming语言.我在这里发布了基于java的解决方案
我倾向于选择2.如果有一个项目我在ide中工作,特别是附加了调试器,我发现事情最终开始搞砸了.可能会追逐一只红鲱鱼一小时才能发现清除所有东西会让问题消失.然后很高兴有一个脚本,我可以偶尔启动以清除一切:
通常事情很好地关闭.如果没有,那么通常会有一个后台线程启动但缺少一个关闭钩子(比如一个memecached客户端)并且需要被追捕.通常情况下,刚刚参加新战争似乎有效.但是如果在开发环境中,执行完全重启的脚本很不错.
| 归档时间: |
|
| 查看次数: |
14036 次 |
| 最近记录: |