2010-12-08 26 views
2

我正在研究一個非常大的java/servlets/web項目,我發現很難找到正在調用的類和方法。有時需要花費數小時才能找到合適的課程。如果有一個應用程序或插件或技術有所幫助?即時通訊使用日食。有沒有一個程序可以告訴你正在調用哪個類/方法

編輯:我使用的是Apache和Tomcat

+0

你在運行時還是在開發時? – 2010-12-08 11:24:49

+0

@Preet at developement – code511788465541441 2010-12-08 11:26:18

回答

1
  • CTRL + ALT + H,或右鍵 - >打開調用層次結構(在方法聲明時)會給你所有的來電,與他們的調用者,等等。您也可以反轉層次結構

  • 右鍵單擊>引用>項目將爲您提供給定類的使用位置。

2

關於您對Bozhos的評論回答:在您的服務器實例上使用分析器。在您點擊客戶端應用程序中的鏈接(「瀏覽器」)之前就開始分析,並在獲得正確響應後立即停止。然後,只需檢查概要分析器日誌/視圖即可瞭解服務器上實際發生的情況。

Eclipse Test & Performance Tools Platform Project值得一試。

0

您可能想考慮使用AOP爲代碼的某些部分添加跟蹤/日誌記錄方面。通過這種方式,您不必更新代碼,只需編寫一個方法即可爲每個調用的方法記錄一行,例如方法的名稱,類和參數。構建生產版本時,當然可以「關閉」這個方面,以防止生產機器上的跟蹤記錄。如果您熟悉AOP,您可以輕鬆地調整方面和切入點,例如只記錄對控制器類中某些方法的調用等。

如果您需要關於此解決方案的更多信息,請隨時對此答案發表評論,要求提供更具體的信息,或者僅需Google for AOP和日誌記錄即可。

1

從你對Bhozo的回答的評論我得出結論,你不是在開發時,而是在運行時。

我建議你將一個調試器連接到你的應用程序並暫停它。那時你可以檢查一下這個callstack,這通常會給你一個想法去看看。

爲了做到這一點,使用以下設置運行Java應用程序:

-Xdebug -Xrunjdwp:transport=dt_socket,address=8787,server=y,suspend=n 

然後在Eclipse中,對「遠程」添加一個調試配置端口8787和執行它。您的調試器現在已鏈接到您的應用程序。將eclipse放入調試視角。

現在單擊應用程序中的鏈接,然後立即單擊調試器中的暫停按鈕。你現在可以看到這個callstack。通常情況下,一旦你有線索,你可以很快找到放置斷點的好點。但這種技術可以幫助你得到一個線索:)

相關問題