2011-09-20 66 views
1

我有一些J2EE應用程序,我可以看到該應用程序在其Web界面中執行的操作。我也有應用程序的源代碼。當我點擊Web界面中的某些內容時,我想知道實際執行的代碼。

找出這個最好的方法是什麼?我正在考慮在每個方法的第一行放置斷點,但手動執行它非常煩人:-),所以我希望這是一個更好的方法。

感謝您的回答。執行什麼代碼

+3

如何記錄日誌?您甚至可以使用攔截器在不更改業務代碼的情況下實際執行此操作。 – Romain

+0

伐木是我最喜歡的方式!另外,Netbeans提供了默認的本機調試器,它有助於逐行調試。 'CTRL + F5'以'F7'開頭。 –

回答

2

您的應用程序部署在應用程序服務器上。您可以通過在調試模式下啓動服務器來進行調試。例如,JBoss爲日食提供了一個不錯的tool suite。使用這些工具,調試只需按一下按鈕(帶有錯誤的那個)。

日誌記錄絕對是一個選項,儘管你不會得到儘可能多的細節。就我個人而言,我更喜歡logback多於reasons

如果您不知道如何設置斷點/登錄位置以及包結構沒有幫助,那麼可以從EJB中的方法開始。例如,查找@Stateless@EJB(查找注入點並從那裏出發)等註釋。
如果有servlet類,請從這裏開始,或者如果它是JSF前端,請查找@ManagedBean註釋。

2

向API中添加日誌消息是找出控制流(並且是歷史上最強大的調試機制之一)的最佳推薦方式。

如果您願意,您可以將其中的大部分設置爲DEBUG級別,以便將它們從開發環境切換到類似生產環境(您很可能不需要它)。

2

我認爲apache記錄器是一個很好的方式來跟蹤流量..因爲它的所有自我寫作。 eclipse提供了一個日誌查看器插件,通過它你可以查看它..但是,當涉及到web應用程序,我認爲monitoing也是至關重要的..使用jconsole你可以看看正在執行的線程..並使用jmap你可以找到出來的類和對象加載...我不知道如果輸出的順序是他們加載..如果是這樣..然後你可以得到一個好的想法如何加載類和實例消耗由他們每個人。

2

如何增加一個Servlet Filter,只是將所有事情都傳遞給鏈,並將斷點放在那裏?

一定要在你的web.xml中有正確的過濾器映射,你的斷點應該是所有匹配URL的方式。