如何在没有源的情况下将断点放在课堂上?
我有一个Web应用程序,我需要找到访问http请求对象的所有类(因为其中一个导致很难找到bug)。 因此我想在ServletRequest实现的一些方法中加入断点。 然而,这个实现由Weblogic提供,我没有源代码。 如何在没有源的情况下在特定方法中的任何地方放置断点。 Eclipse IDE是首选。
您可以使用相关类的大纲视图设置方法断点。 然后调试器在方法的第一行中断。
根据您的运气,您可以使用反编译器执行此操作。 您必须将断点放在适当的行中(唉,可能不包含“breakpointable”代码)
更好的方法是创建一个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 }
如果你想让它工作,我担心你需要源代码。
对于调试,您需要与此代码匹配的可读代码+行号。 这些项目都不包含在类文件中
- 无法使用Eclipse访问Amazon RDS
- 我的Jasper模板没有显示任何文字
- 如何在Eclipse中运行简单的Java程序?
- eclipse格式java源代码基于方法调用
- 为什么JfileChooser.showOpenDialog在Mac OSX上挂起?
- “热代码替换”无法正常工作 – Eclipse不会更改JBoss上的任何代码
- ClassNotFoundException:com.mysql.jdbc.Driver。 用于Web应用程序的JDBC MySQL驱动程序
- java.lang.NoSuchMethodError:javax.persistence.Table.indexes()[Ljavax / persistence / Index;
- 如何使用Eclipse JDT ASTParser获取方法的类名?