java - Tomcat不更新WAR不肯死--部署忧郁

标签 java tomcat deployment war

我使用 Ant 脚本部署了 3 个 WAR 文件,并使用 startup/shutdown.sh 停止和启动 tomcat。当我执行 shutdown.sh 时,Tomcat 进程不会终止。如果我忘记执行“lsof -i :8080”,然后执行 kill ,则 tomcat 仍会启动,但 firefox 不会加载该页面。为什么 Tomcat 没有优雅地死去?

第二个问题:之前我使用Eclipse来处理Tomcat服务器的启动/停止。在对 js 文件进行更新的情况下,在 WebContent 中,只需以 debug=true 模式启动站点就足够了。但是现在,当从命令行使用 Tomcat 时,我必须重新生成 WAR 文件,然后重新启动 Tomcat 以使更改生效。为什么会这样?

我的 conf/server.xml 文件的相关部分:

<Host appBase="/home/local/deploy/eclipse/webapps" autoDeploy="true" name="localhost" unpackWARs="true">

        <!-- SingleSignOn valve, share authentication between web applications
             Documentation at: /docs/config/valve.html -->
        <!--
        <Valve className="org.apache.catalina.authenticator.SingleSignOn" />
        -->

        <!-- Access log processes all example.
             Documentation at: /docs/config/valve.html
             Note: The pattern used is equivalent to using pattern="common" -->
        <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs" pattern="%h %l %u %t &quot;%r&quot; %s %b" prefix="localhost_access_log." resolveHosts="false" suffix=".txt"/>

是的,我没有明确设置上下文路径,因为 autoDeploy 是 true 并且 Tomcat 为我做了这件事。所以 。这可能是个问题吗?

最佳答案

您的第一个问题不是很清楚,而且确实经常发生在我身上。有时我只需要发出 kill -9。这可能是因为 Tomcat 以某种方式保留了一个重要的 Activity 容器线程。

第二个问题比较简单。如果您使用的是 eclipse 安装外部的 tomcat 实例,您将无法“轻松”利用某些热部署功能。按照您过去的做法,您很可能会使用 eclipse wst 插件。这允许 tomcat 容器在 eclipse 中运行和管理。

无论何时将应用程序部署到 eclipse wst tomcat 实例,实际上都是将其部署到镜像 tomcat 的插件文件夹。

插件文件夹通常位于 $eclispe_home/.metadata/.plugins/org.eclispe.wst.server.core/tmp0/wtpwebapps。

如果您正在使用外部 tomcat 实例并且没有将其链接到 eclipse,那么您将拥有一个完全隔离的环境,并且您的所有更改都必须手动或通过创建某种构建器进程推送到 tomcat。

关于java - Tomcat不更新WAR不肯死--部署忧郁,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9307277/

相关文章:

java - 如何在tomcat中获取webapp的工作目录?

java - 将 java 文件导入 jsp - 无法解析为类型错误

jsf - java.lang.IllegalArgumentException : duplicate key: class javax. faces.convert.DoubleConverter

php - 使用 Apache ANT 部署 Web 应用程序?

ASP.NET 部署工具

java - 如何删除JFrame中绘制的字符串

java - 在 OpenGL 中根据屏幕坐标绘制线条

java - spring中如何注入(inject)driverClassLoader属性?

asp.net - 部署已发布的代码?

java - 通话失败: tts engine connection not fully setup in the TextToSpeech functionality