Windows 团队城市:无法重新部署到Tomcat7

Windows 团队城市:无法重新部署到Tomcat7,windows,continuous-integration,tomcat7,teamcity,teamcity-9.0,Windows,Continuous Integration,Tomcat7,Teamcity,Teamcity 9.0,我有一个使用TeamCity部署器插件的构建配置。 我正在使用容器部署将war文件部署到Tomcat.7.0.63,该文件作为服务安装在Windows Server 2012 R2机箱上。 第一次运行构建时,工件(war文件)成功部署。 第二次以及所有后续运行时,部署失败 错误消息: Build failure message received: org.codehaus.cargo.container.ContainerException: Failed to undeploy 日志文件错误

我有一个使用TeamCity部署器插件的构建配置。 我正在使用容器部署将war文件部署到Tomcat.7.0.63,该文件作为服务安装在Windows Server 2012 R2机箱上。 第一次运行构建时,工件(war文件)成功部署。 第二次以及所有后续运行时,部署失败

错误消息:

Build failure message received: org.codehaus.cargo.container.ContainerException: Failed to undeploy
日志文件错误:

Caused by: org.codehaus.cargo.container.tomcat.internal.TomcatManagerException: FAIL - Unable to delete
当我转到远程服务器上的webapps文件夹时,war文件被删除,但扩展的文件夹仅被部分删除。除png文件外,大多数文件都消失了。 我无法手动删除该文件夹,因为Tomcat仍然锁定了它。 如果我重新启动tomcat,那么我就能够成功地运行构建(war文件部署)

我的一个想法是在每次部署之前或之后重新启动Tomcat。 如何从TeamCity重新启动Tomcat?
或者,是否有人对如何解决此问题提出了建议?

您可以使用
反资源锁定
选项配置Tomcat上下文,如中所述。不过,这确实有一些折衷之处;完全值得阅读文档并评估它是否适合您的应用程序n、

查看;您是否尝试过
反资源锁定
选项?我没有。我会调查一下。@SteveChapman您关于使用反资源锁定的建议效果非常好。我还添加了“可重新加载”选项选项,因为这是一个集成测试服务器,一天中可能会发生多次重新部署。根据您的建议创建一个答案,我会将其标记为正确。很高兴它成功了;答案已添加。仅供参考:了解如何在windows上远程启动/停止服务。TeamCity有一个命令行运行程序,可用于执行一个测试。带sc\\start\stop的bat文件您对在生产中使用它有什么想法?我发现如果我只等大约五分钟(足够应用程序在Tomcat中完成加载的时间),然后我可以在不使用此参数的情况下再次运行TeamCity部署。因此,对于生产,可能不需要它,但由于这是集成测试,而且我可能会让不耐烦的测试人员点击“运行”按钮,因此我决定使其具有容错性。