I have a web application where I need to find all classes that accesses the http request object (because one of them is causing a hard to find bug). Therefore I would like to put breakpoint in some of the methods of ServletRequest implementation. This implementation is however provided by Weblogic for which I don't have sources. How can I put a breakpoint in a class anywhere in a particular method without having it's source . The Eclipse IDE is preferred.
You can set a method breakpoint using the outline view of the class in question. Then the debugger breaks at the first line of the method.
Depending on your luck, you can do this with a decompiler. You'll have to place the breakpoint in the appropriate line (which, alas, might not contain "breakpointable" code)
The better way to do this is to create a ServletResponse
wrapper. Incidentally, yesterday I created such a thing (with a slightly different purpose), so here it is:
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
}
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With