我有一些J2EE应用程序,我能够在它的Web界面中看到该应用程序正在做什么。我也有应用程序的源代码。当我点击Web界面中的某些内容时,我想知道实际执行了什么代码。
找到这个的最佳方法是什么?我想把断点放在每个方法的第一行,但是手动执行它非常烦人:-),所以我希望这是一个更好的方法。
谢谢你回答。
答案 0 :(得分:2)
向API中添加日志消息是确定控制流的最佳和推荐的方法(并且也是历史上最强大的调试机制之一)。
如果您愿意,您可以将其中的大多数设置为DEBUG
级别,以便将它们从开发环境切换到类似生产的环境(您很可能不需要它)。
答案 1 :(得分:2)
我认为apache记录器是跟踪流程的一种很好的方式.. cos全部自编。 eclipse提供了一个日志查看器插件,你可以通过它查看它..但是当谈到Web应用程序时,我认为监控也很关键..使用jconsole你可以查看正在执行的线程..并使用jmap你可以找到out类和加载的对象...我不知道输出是否按照它们被加载的顺序..如果是这样..那么你可以很好地了解类的加载方式..以及消耗的实例由他们每个人。
答案 2 :(得分:2)
添加记录器。您也可以使用记录器库,例如Apache Commons Logging。
答案 3 :(得分:2)
如何添加Servlet Filter只是将所有内容传递给链并将断点放在那里?
请务必在web.xml中使用正确的过滤器映射,并且断点应该与所有匹配的URL一致。
答案 4 :(得分:2)
您的应用程序部署在应用程序服务器上。您可以通过在调试模式下启动服务器来调试它。例如JBoss对于eclipse有一个很好的tool suite。使用这些工具,调试只需按一下按钮(带有错误的按钮)。
记录绝对是一个选项,尽管你不会得到那么多细节。我个人更喜欢logback而不是公共reasons。
如果您没有线索,在哪里设置断点/在哪里记录,并且包结构没有帮助,您可以从EJB中的方法开始。例如,查找注释@Stateless
,@EJB
(以查找注入点并从那里开始)。
如果有servlet类,从那里开始,或者如果它是JSF前端,请查找@ManagedBean
注释。