【问题标题】:Manual jar extraction vs Tomcat unpack手动提取 jar 与 Tomcat 解压
【发布时间】:2012-06-11 01:49:28
【问题描述】:

我的一项工作是在 tomcat 服务器中部署战争文件,我已经这样做了多年。我的部署方式是;停止tomcat,将war复制到我在tomcat虚拟主机中设置为appbase的新目录中,然后启动tomcat以提取appbase下的war,最后停止tomcat,将提取的目录从appbase移动到webapps并启动tomcat终于。我们的开发人员强烈推荐此过程,因为他们抱怨说,如果我由于多次自动部署而直接将战争置于 webapps 下,他们过去常常会收到一些邮件。这种方式对我们来说很好,并且在生产服务器上从未遇到任何问题。

我的问题是,

用命令行mkdir myapp;cd myapp;jar -xf /path/myapp.war手动提取和tomcat提取的方式一样吗?我想写一个脚本,如果我用jar命令手动提取war文件并将其放在webapps中并启动tomcat而不是让tomcat解包war,会有什么问题吗?它是否有效,是否推荐用于生产服务器,或者如果它神秘地做了任何 jar 不能做的事情,它是否会对 tomcat 提取的方式产生任何影响?。

需要帮助,谢谢!

【问题讨论】:

    标签: tomcat ubuntu deployment jar war


    【解决方案1】:

    除非您的配置以某种方式被破坏,否则替换 webapps/ 目录中的 WAR 文件(或爆炸的 WAR 目录)应该会导致 webapp 被重新部署——并且只部署一次。如果您分享更多您的配置,我或许可以评论一下您遇到双重部署的原因。

    【讨论】:

    • 我只是一个系统管理员,我只会管理tomcat服务器,但不知道应用程序的内部功能。它的部署方式根本不是问题,但考虑我是否手动提取战争以及它是否与 tomcat 本机解包有任何区别。
    • 自己解压 WAR 与让 Tomcat 解压它本质上没有区别。如果您想让 Tomcat 继续运行,那么实际上最好让 Tomcat 解压缩 WAR 文件,因为否则 Tomcat 可能会检测到您的 webapp 的更改(例如,更新的 JAR 文件或 .class 文件)并重新加载期间 您的手动解包操作,这可能会导致您的 webapp 严重不稳定。如果 Tomcat 管理解包,就不会犯这样的错误。
    • Ok tomcat的解压推荐。而且,如果我将 appbase 指定为 webapps 并将战争直接放在 webapps 中,因为每个应用程序都有虚拟主机,它会重新加载战争指定的虚拟主机数量的许多倍。这就是为什么我将 appbase 指定为每个应用程序的唯一性,并再次将它们移动到 webapps。
    • 虚拟主机是自动的:每个 定义一个主机并且必须有一个名称(主机名将会响应)。您还必须有一个 的默认主机——它可以获取与任何其他 不匹配的所有请求。每个 都有一个 appBase,您可以在其中放置 WAR 文件(或分解的 WAR 目录)。每个 WAR(或 dir)都被部署为一个单独的 webapp(又名上下文)。如果您为每个 指定 same 应用程序库,您将获得 all webapps 的多个(单独!)部署。建议为每个 使用唯一的 appbase 以减少混淆。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-11-20
    • 1970-01-01
    • 2021-06-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多