2015-09-11 63 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