我有一些J2EE應用程序,我可以看到該應用程序在其Web界面中執行的操作。我也有應用程序的源代碼。當我點擊Web界面中的某些內容時,我想知道實際執行的代碼。
找出這個最好的方法是什麼?我正在考慮在每個方法的第一行放置斷點,但手動執行它非常煩人:-),所以我希望這是一個更好的方法。
感謝您的回答。執行什麼代碼
Q
執行什麼代碼
1
A
回答
2
您的應用程序部署在應用程序服務器上。您可以通過在調試模式下啓動服務器來進行調試。例如,JBoss爲日食提供了一個不錯的tool suite。使用這些工具,調試只需按一下按鈕(帶有錯誤的那個)。
日誌記錄絕對是一個選項,儘管你不會得到儘可能多的細節。就我個人而言,我更喜歡logback多於reasons。
如果您不知道如何設置斷點/登錄位置以及包結構沒有幫助,那麼可以從EJB中的方法開始。例如,查找@Stateless
,@EJB
(查找注入點並從那裏出發)等註釋。
如果有servlet類,請從這裏開始,或者如果它是JSF前端,請查找@ManagedBean
註釋。
2
向API中添加日誌消息是找出控制流(並且是歷史上最強大的調試機制之一)的最佳推薦方式。
如果您願意,您可以將其中的大部分設置爲DEBUG
級別,以便將它們從開發環境切換到類似生產環境(您很可能不需要它)。
2
我認爲apache記錄器是一個很好的方式來跟蹤流量..因爲它的所有自我寫作。 eclipse提供了一個日誌查看器插件,通過它你可以查看它..但是,當涉及到web應用程序,我認爲monitoing也是至關重要的..使用jconsole你可以看看正在執行的線程..並使用jmap你可以找到出來的類和對象加載...我不知道如果輸出的順序是他們加載..如果是這樣..然後你可以得到一個好的想法如何加載類和實例消耗由他們每個人。
2
2
如何增加一個Servlet Filter,只是將所有事情都傳遞給鏈,並將斷點放在那裏?
一定要在你的web.xml中有正確的過濾器映射,你的斷點應該是所有匹配URL的方式。
相關問題
- 1. while(0)爲什麼不執行代碼?
- 2. 什麼觸發JavaScript代碼執行?
- 3. 爲什麼執行此代碼?
- 4. 爲什麼不執行此jQuery代碼?
- 5. 要執行什麼文件BLE代碼
- 6. 爲什麼不執行此代碼?
- 7. 這段代碼爲什麼執行?
- 8. Javascript爲什麼不執行此代碼?
- 9. 爲什麼不執行此代碼?
- 10. 定義類時執行什麼代碼?
- 11. 爲什麼代碼被執行兩次?
- 12. 編譯代碼和可執行代碼有什麼區別?
- 13. 在WCF下運行代碼與「常規」代碼執行,有什麼不同?
- 14. 執行代碼
- 15. 代碼執行
- 16. 腳本不執行代碼行 - 爲什麼?
- 17. 爲什麼Response.Redirect不執行下一行代碼?
- 18. 執行這部分C#代碼後會有什麼行爲?
- 19. 爲什麼最後一行沒有被這段代碼執行?
- 20. 爲什麼此代碼的並行執行比順序慢?
- 21. 爲什麼某些代碼行在循環後不能執行?
- 22. 這行代碼問什麼?
- 23. 什麼是代碼行?
- 24. 有沒有什麼辦法可以防止EventListener在執行時執行代碼?
- 25. 在Java中執行新操作後,代碼塊會執行什麼操作?
- 26. 什麼是執行XML讀取最快的(代碼執行)方式?
- 27. 媒體查詢 - 爲什麼應該執行的css代碼無法執行
- 28. 有什麼方法可以執行java中已執行的代碼嗎
- 29. 爲什麼一些代碼會執行而其他代碼不會?
- 30. 我的代碼有什麼問題? (執行代碼時會崩潰)
如何記錄日誌?您甚至可以使用攔截器在不更改業務代碼的情況下實際執行此操作。 – Romain
伐木是我最喜歡的方式!另外,Netbeans提供了默認的本機調試器,它有助於逐行調試。 'CTRL + F5'以'F7'開頭。 –