2012-02-16 150 views
3

我使用Ant脚本部署3个WAR文件,并使用startup/shutdown.sh停止并启动tomcat。当我执行shutdown.sh时,Tomcat进程不会死亡。如果我忘了做一个“lsof -i:8080”然后杀死,那么,tomcat仍然会启动,但firefox不会加载该页面。为什么Tomcat不会优雅地死亡?Tomcat不更新WAR并拒绝死亡 - 部署蓝色

第二个问题:以前我曾经使用Eclipse来处理Tomcat服务器的启动/停止。在WebContent内部更新js文件时,只需以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"/> 

是的,我还没有设置上下文路径明确的自动部署是真实和Tomcat确实对我来说。所以。这可能是一个问题吗?

+0

差不多想为upvote问题的标题... – mmcrae 2015-01-22 21:52:18

回答

1

你的第一个问题不是很清楚,而且经常会发生在我身上。有时候我只需要发一个kill -9。这可能是因为Tomcat以某种方式持有活动的重要容器线程。

第二个问题更容易一点。如果您使用的是eclipse安装外部的tomcat实例,那么您将无法“轻松”利用某些热部署功能。你过去的做法是,你很可能使用Eclipse eclipse wst插件。这允许tomcat容器运行并在eclipse中进行管理。

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

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

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

+0

谢谢。我想我被困在一个孤立的那个。我只是不喜欢Eclipse。 – crazyaboutliv 2012-02-18 05:18:32