【问题标题】:Auto-Deploy war file from jenkins without Tomcat's Manager在没有 Tomcat 管理器的情况下从 jenkins 自动部署战争文件
【发布时间】:2015-12-07 18:46:00
【问题描述】:

我想构建一个自动脚本或等效于通过 jenkins 将战争文件自动部署到 tomcat 服务器的东西。未启用 tomcat 管理器,因此“部署到容器插件”几乎没有,因为它需要管理器处于活动状态。目前我正在通过scp将war文件推送到tomcat,但是tomcat似乎在每次尝试时都会崩溃。我还尝试了 maven-tomcat-deploy 替代方案,它也需要 tomcat 的管理器处于活动状态。还有其他方法可以将战争文件自动部署到我的 tomcat 吗?

【问题讨论】:

    标签: java maven tomcat deployment jenkins


    【解决方案1】:

    据我所知,您需要管理员上传战争或复制它。

    如果 Tomcat 在重新部署后崩溃,我会检查是否没有从 Tomcat 类加载器加载其类的实例到应用程序类加载器加载其类的实例的引用。 当 GC 启动对您的应用程序加载实例的引用时,该类会导致类,该类又会导致类加载器引用所有类。所以GC无法清除它们占用的内存。

    我遇到的大多数(如果不是全部)Tomcat 重新部署失败的问题都是由这种引用问题引起的。因此,旧部署将保留在内存中,尽管它不会发生任何事情。您可以增加分配的内存,但这只会推迟崩溃。

    【讨论】:

    • 在部署前关闭 tomcat 并在传输完成后重新启动它?
    • 可以在tomcat关闭的情况下删除应用,然后复制新版本。但是,在运行自动化测试或在未重新启动生产环境的情况下部署时,这种停机时间可能会很烦人。
    猜你喜欢
    • 2016-01-10
    • 1970-01-01
    • 2016-09-19
    • 1970-01-01
    • 2014-05-17
    • 2021-01-24
    • 2012-11-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多