我正在構建一個相對簡單的Web應用程序,其中主Servlet實現ServletContextListener
接口以確定上下文是已啓動還是停止。我已經實現了我的contextInitialized
,contextDestroyed
,init
和destroy
方法(在基類上都有init
和destroy
調用super
)。我目前已經實現了沒有真正的功能,除了我已經在contextInitialized
方法中初始化log4j的方法,我加載log4j.properties
文件。Tomcat未在Eclipse內關閉
當我在Eclipse中啓動和停止Tomcat服務器時,所有內容都按照正確的順序調用(我使用一些System.out.println
來測試),但是在停止服務器約10秒後,用Eclipse彈出窗口說明以下內容:
服務器Tomcat v6.0服務器在本地主機 沒有響應。你想 終止這臺服務器?單擊確定以 終止服務器或單擊取消 繼續等待。
這是什麼印在我的Eclipse控制檯時,我停止服務器:
04/01/2010下午7時39分13秒org.apache.catalina.core.StandardService停止
信息:停止服務卡塔利娜
contextDestroyed
04/01/2010下午7點39分13秒org.apache.coyote.http11.Http11Protocol破壞
信息:在停止狼HTTP/1.1 HTTP-8080
在最後一個INFO
消息之後,它只是掛在那裏,直到彈出窗口出現。如果我選擇等待,請按取消,Eclipse變得不可用,我必須從終端中終止Eclipse進程。
有關如何解決此問題的任何輸入將不勝感激。
UPDATE:
這個問題是由我開始我的init
方法中的非守護線程引起的(忘了提,:)。該問題已通過使用stop
方法明確停止線程來解決,即使該方法似乎已被棄用。
我真能第一人使用標籤 '的servlet'?!? – Luke 2010-01-04 08:48:46
'servlets'是更常見的標籤,看來。 :) – ZoogieZork 2010-01-04 08:59:31
我認爲這不僅發生在日食,但一般。 據我記得這是一個log4j資源的問題,谷歌考慮到這一點。 – Bozho 2010-01-04 10:05:59