tomcat 替换class文件需要重启吗

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了tomcat 替换class文件需要重启吗相关的知识,希望对你有一定的参考价值。

需要,不过你可以配置tomcat的热部署环境来简化这步骤。 参考技术A 必须得重启,可以集成个rebel 来进行热部署 参考技术B 这个是不需要的。。。。

每次重启tomcat服务是不是需要部署war文件

【中文标题】每次重启tomcat服务是不是需要部署war文件【英文标题】:Is it necessary to deploy the war files every time the tomcat service is restarted每次重启tomcat服务是否需要部署war文件 【发布时间】:2018-02-22 08:22:46 【问题描述】:

我有几个 war 文件已部署并且 Web 应用程序工作正常,但每次重新启动 tomcat 服务或系统时,war 文件都会重新部署并停止重新部署,我设置了配置选项 deployOnStartup 和 autoDeploy在 server.xml 中设置为 false。

但是现在机器重启或者tomcat服务重启后,web应用都不能用了,所以不知道是不是每次重启机器或者tomcat都需要重新部署war文件。

我遇到的原始问题是,当tomcat在启动时部署war文件并重新启动时,它会消耗高达95%的CPU并且其他进程被占用,所以为了解决它我试图关闭自动部署但是如果自动启动已关闭,Web 应用程序无法正常工作。所以我需要知道是否有任何方法可以限制tomcat的CPU使用率。

【问题讨论】:

所以你告诉tomcat不要在启动时重新部署应用程序。现在您想知道为什么它不部署它们。有什么遗漏吗?如果您最初想知道为什么tomcat“每次重启后都在部署”,那很正常,它只是在运行的服务器实例中启动应用程序的过程。 何不尝试重新设置配置选项,看看重启后web应用是否开始工作,然后想想 . @chrylis 我认为如果您查看启动时的日志(相对于重新启动),您会发现无论战争中的时间戳是什么,您都会看到正在部署的 war/app name.war 以及它在此活动上取得的进展。每次启动tomcat时它都在那里。除非你告诉它不要这样做。 @Ernest Kiwele- deployOnStartup 和 autoDeploy 一开始是真的,所以部署了war文件,之后我手动编辑了服务器。 xml 并将这两个标志设置为 false。所以我认为 web 应用程序应该在重启后工作,因为 war 文件已经部署。 @Elliott Frisch,我已经尝试将配置选项恢复为true并重新启动tomcat。war文件已重新部署并且Web应用程序开始工作。所以我想知道是否每次都必须重新部署war文件机器/tomcat 重新启动。 【参考方案1】:

这就是 servlet 容器的工作方式:您不能有一个未部署的应用程序在客户端发出请求时被调用。在这种情况下,“部署”实际上意味着“开始”。没有单独的“部署”步骤,只需执行一次即可使应用程序通过容器可用。通常,启动时部署正是您希望发生的事情。

如果您遇到问题是因为您的应用程序在启动时占用了所有系统资源,那么我认为您需要花一些时间重新评估您的容量计划。您说的是“保留了其他应用程序”......大概您的意思是,在部署您的 Web 应用程序时,同一服务器上的其他应用程序没有响应。这是因为 Web 应用程序正在执行的所有活动。

嗯...如果您需要同时使用非 Web 应用程序和 Web 应用程序,那么看起来您将需要第二台服务器(或第三台等) .

您可能还想查看您的 Web 应用程序,看看它在启动期间做了什么。也许它做的工作超出了必要,或者它的工作效率低下1

最终,这将归结为您需要哪些可用的服务以及可用的硬件。如果服务不能满足您的需求(例如可用性),那么您需要更改其中一个参数(例如更多硬件),直到服务再次满足您的需求。或者,您需要调整您的期望(抱歉……某些服务只需要在网络应用启动时等待)。

1 作为一名顾问,我曾经遇到过一个可能需要 5 分钟才能启动的 Web 应用程序,而在我们的开发工作中,我已经厌倦了等待它。所以,我检查了发生了什么,应用程序正在构建整个关系数据库表和字段结构的内存表示。他们这样做的方式非常低效,经过几个小时的重构,我将启动时间从大约 5 分钟缩短到了大约 30 秒。有时,只有更好的方式来做事。

【讨论】:

以上是关于tomcat 替换class文件需要重启吗的主要内容,如果未能解决你的问题,请参考以下文章

替换class文件需要重启tomcat吗

直接替换class文件风险

换.class文件需要重启服务器吗

tomcat替换jar需要重启吗

JSP更换class文件后,一定要重启Tomcat吗?

tomcat更新了class文件,如果不reload,有啥方法能让它自动重新加载吗