我有一个web应用程序,我需要找到访问http请求对象的所有类(因为其中一个导致很难发现错误)。因此,我想在ServletRequest实现的一些方法中加入断点。然而,这个实现是由Weblogic提供的,我没有源代码。我怎样才能在某个特定方法的某个类中放置一个断点而不需要它的源代码。 Eclipse IDE是首选。如何将断点放在课堂上,而不是源代码?
11
A
回答
17
您可以使用相关类的大纲视图来设置方法断点。然后调试器在该方法的第一行中断。
0
恐怕如果你想让它工作,你需要源代码。
对于调试,您需要与此代码匹配的可读代码+行号。 这些项目都不包含在类文件中
+0
幸运的是,这是不正确的。请参阅ThorbjørnRavn Andersen的回答! – vol 2012-07-03 21:38:24
1
根据你的运气,你可以用a decompiler做到这一点。您必须将断点放在适当的行中(唉,可能不包含“可断点”代码)
更好的方法是创建一个ServletResponse
包装器。顺便说一句,昨天我创造了这样一个东西(目的略有不同),所以这里是:
public class DebugFilter implements Filter {
public void init(FilterConfig filterConfig) {}
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
throws IOException, ServletException {
chain.doFilter(request,
new ResponseWrapper((HttpServletResponse) response));
}
public void destroy() {}
}
class ResponseWrapper extends HttpServletResponseWrapper {
public ResponseWrapper(HttpServletResponse response) {
super(response);
}
@Override
public PrintWriter getWriter() throws IOException {
return super.getWriter(); // breakpoint here
}
// Override whichever methods you like
}
+0
包装方法的问题是,我已经在我的应用程序中有包装,但某些框架以某种方式直接对原始请求进行操作 - 这就是错误:-)。 – 2010-08-12 09:06:24
相关问题
- 1. 查询 - 把他们放在课堂上?
- 2. 如何在课堂上使用线程?
- 3. 如何在课堂上轨加协会
- 4. 如何在课堂上访问Laravel Singletons?
- 5. 你如何在课堂上分享ivars?
- 6. 将脚本标记放在课堂上有什么好处吗?
- 7. nhibernate在课堂上懒惰
- 8. T在课堂上? AddRange ICollection?
- 9. 在课堂上显示ListView
- 10. 如何从课堂上运行服务?
- 11. 如何回到上一堂课?
- 12. 如何在jQuery中截断单词而不切断源代码中的单词?
- 13. angularJS 1.2如果在课堂上表达
- 14. 电源模拟 - 嘲讽终极课堂时的断言错误
- 15. 如何从课堂外进入课堂变量
- 16. 如何将课堂与有条件的课堂相结合? vue.js 2
- 17. 如何设计课堂?
- 18. 如何从课堂脱身
- 19. 如何使课堂真实?
- 20. 我如何选择课堂?
- 21. 如何隔离课堂?
- 22. 如何将Java源代码放入IDE
- 23. 我应该如何将庞大而臃肿的课堂分为更小的课堂?
- 24. 如何将焦点放在标注上而不是在主视图上? Swift 3
- 25. 隐藏课堂上的RNG
- 26. 如何在课堂中共享IDisposable资源?
- 27. 有两类,上课时如何使用下课堂对象?
- 28. 如何将方法添加到课堂上? (与反射无关)
- 29. 如果我在课堂上定义了某些东西,我该如何在课堂内调用?
- 30. 如何在课堂中包含文件?
很酷,我不知道:) +1 – Bozho 2010-08-12 08:39:41
由于某种原因,该方法的右键单击菜单不包含新工作区上的“切换方法断点”,但在设置另一个断点后显示。 – 2013-05-06 11:53:40