這聽起來有點太天真了,但在服務器啓動過程中,我總是要花很長時間來調試java類。這裏是場景:在啓動時調試java應用程序
- java應用程序託管在tomcat服務器上。
- 假設有一個類在tomcat服務器啓動時被調用。
- 只要我停止tomcat實例以重新啓動,eclipse調試就會停止,只有在應用程序啓動並運行後,我才能啓動調試。
- 現在我該如何在eclipse上調試這個類?
感謝您的幫助提前。
這聽起來有點太天真了,但在服務器啓動過程中,我總是要花很長時間來調試java類。這裏是場景:在啓動時調試java應用程序
感謝您的幫助提前。
在啓動過程中調試類應該沒有問題。例如,假設你實現了一個ServletContextListener class。所屬contextInitialized方法在Tomcat啓動期間被調用(或者更確切地說:當您的應用程序被部署時)。
您可以在此類中設置斷點。此時,Tomcat已經完全啓動,調試時不應該有任何問題。
嘿Sebi, 我可以肯定地設置斷點。但是爲了使斷點工作,我的eclipse上的調試應該運行......而我的問題是調試不會在我的eclipse上運行,直到服務器完全啓動並運行。 – rajugaadu
嘗試使用遠程調試的eclipse啓動的外部服務器。您可以在部署應用程序之前啓動該服務器。之後,您可以在已經連接到服務器的情況下通過eclipse部署應用程序。如果您的斷點仍然被忽略,請先嚐試一個簡單的測試應用程序。 – Sebi
我通常不會通過eclipse啓動我的服務器。我啓動tomcat服務器(當然是自定義啓動腳本),然後使用localhost和調試端口號掛接eclipse調試選項。 – rajugaadu
您需要將「等待調試器連接」標誌傳遞給tomcat。因此,創業公司會一直等到您連接後,您就不會錯過這個斷點。
就拿那些Java選項,就是讓Tomcat監聽調試器:
-Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,address=8797,server=y,suspend=y
的等待調試器連接標誌在上述行suspend=y
條目。
在您的類中放置一箇中斷點,並確保在調試模式下啓動服務器。 –
我也這麼做。但是爲了在eclipse上啓動調試,服務器應該正常運行,對吧?在那之前,當我單擊調試符號時,它會引發錯誤。當它開始工作的時候,這個類已經被調用了,我錯過了它。 – rajugaadu