2012-02-16 104 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