2009-09-02 29 views
37

通過eclipse運行Tomcat可以在非調試模式下正常工作,但不能在調試模式下正常工作。當我嘗試在調試模式下啓動Tomcat服務器時,控制檯輸出看起來很好,但隨後開始變慢,最終停止,並以100%掛起CPU。我不認爲這是相關的,但爲了以防萬一 - 控制檯輸出正確的是什麼時候它開始減速並最終停止(通過停止我的意思是沒有更多的控制檯輸出,但仍然是100%cpu)。使用Eclipse IDE以調試模式加速Tomcat

2009-09-02 14:35:30,859 INFO NONE org.springframework.context.weaving.DefaultContextLoadTimeWeaver:72 - Found Spring's JVM agent for instrumentation 
2009-09-02 14:35:49,562 INFO NONE org.springframework.beans.factory.support.DefaultListableBeanFactory:414 - Pre-instantiating singletons in org.s[email protected]ed889d: defining beans [... 
2009-09-02 14:37:31,031 INFO NONE org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean:221 - Building JPA container EntityManagerFactory for persistence unit ... 

我什麼都試過了我能想到的解決它:

  • cleanesd Tomcat的工作目錄
  • 重新啓動日食
  • ,Windows重新啓動
  • 刷新/清理所有項目

我第一次有這個問題m上週使用eclipse ganymede。在這個問題出現之前的幾個月,我一直在調試模式下運行良好。我沒有對我們的項目做出任何重大改變,導致這一點。最後,我升級到日食伽利略,這解決了我的問題。現在2天后,我在伽利略遇到同樣的問題。就像我說的,它在非調試模式下工作正常。任何幫助深表感謝。

我應該添加其他東西在調試模式下工作 - 例如junit測試,所以它是特定於tomcat的東西。

+0

您是否嘗試清理工作區。有時它發生在我身上,那麼我只會清理我的工作區。一旦工作區被清理,它就可以正常工作 – 2009-09-03 12:06:48

+0

僅供參考 - 這同樣適用於Intellij IDEA。只是試過這與IntelliJ 10,我從7分鐘啓動時間爲tomcat 5.5.31到20秒爲我的應用程序.... – 2012-06-21 01:13:07

回答

126

我已經解決了這個問題!一旦我明白了,我記得之前發生過這種事。我清除了所有的斷點,它工作正常。我不知道爲什麼會導致這樣的結果,但它是有效的。

+6

爲我工作,以及當我今天有這個問題時 – Ayrad 2009-11-06 09:19:32

+6

感謝您的建議, t upvote你更多! =)) – 2010-02-03 05:53:29

+0

發生在我身上,並清理斷點幫助..雖然它很奇怪.. :) – kane77 2010-04-20 08:21:14

15

我剛碰到這個問題,而且這個解決方案幫了我一些忙。但是 - 我只有1個斷點,而不是其他海報的20多個。然而,我的一個斷點是一個方法斷點而不是一個斷點 - 我不知道在tomcat啓動時多方法調用與方法斷點結合是否會導致此問題... 我剛剛嘗試了一個小實驗:

  1. 設置行斷點和 開始調試模式 - 5秒 啓動(正常)
  2. 設置的方法斷點和啓動調試模式 - .....不願意等待(> 90 秒)。

我猜這是問題所在。

+4

是的,方法斷點和觀察點(場上的斷點)比線斷點慢得多。只要有可能,歡迎使用折線斷點,除非您不確定您的源代碼與您正在調試的類匹配。例如,在方法內部的第一條語句上放置一個斷點,而不是在方法簽名本身上。請參閱http://stackoverflow.com/a/787753/277307以瞭解方法斷點較慢的原因。 – 2012-02-29 23:27:23

+0

Thanks @ nodescript1我知道爲什麼我的eclipse緩慢並修復它的原因。 – janwen 2012-04-27 02:20:06

1

更改默認的日誌記錄級別從:

<root> 
    <level value="DEBUG" /> 
    <appender-ref ref="ConsoleAppender" /> 
</root> 

要:

<root> 
    <level value="OFF" /> 
    <appender-ref ref="ConsoleAppender" /> 
</root> 
3

我在伽利略同樣的問題。快速運行,但爬行調試。感謝上面的帖子,我清除了所有斷點並重新啓動了Tomcat。這神奇地解決了這個問題。 fyi - 我早些時候有2個方法斷點和其他的斷點。 我做了測試以確認上述有關方法斷點放緩的理論。這是我發現的。看起來問題不在於方法斷點,問題在於方法斷點仍然顯示在調試視圖的斷點列表中,但在代碼中不存在。我的意思是我改變了該方法的參數,但舊參數的舊斷點仍然存在於斷點列表中。這是罪魁禍首,當我刪除它時,其他方法斷點沒有減慢服務器速度。 所以看起來像日食是試圖尋找一些不存在的東西,這似乎減緩了它。 希望這有助於。