2015-09-11 62 views
3

我想建立一个自动脚本或相当于自动部署战争文件通过jenkins的tomcat服务器。 tomcat管理器没有启用,所以“部署到容器插件”几乎是一个小错,因为它需要管理器处于活动状态。目前我正在通过scp将war文件推送到tomcat,但是tomcat似乎在其他任何尝试中都崩溃了。我也尝试了maven-tomcat-deploy替代方案,这也需要tomcat的管理者来激活。有没有另一种方法来自动部署战争文件到我的tomcat?从jenkins自动部署战争文件没有Tomcat的经理

回答

2

据我所知,你需要经理上传战争或复制它。

如果Tomcat在重新部署后崩溃,我会检查是否没有从Tomcat类加载器加载的类实例引用实例,并且它的类由应用程序类加载器加载。 当GC开始引用应用程序时,加载的实例会导致类继而导致引用所有类的类加载器。所以GC不能清除它们所带的内存。

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

+0

可能解决方案是在部署之前关闭tomcat并在传输完成后重新启动它? – macskay

+0

您可以删除应用程序,然后在tomcat关闭时复制新版本。但是,在运行自动化测试时或者在不重新启动生产环境的情况下进行部署时,这种停机时间可能会很烦人 – user392486